2016年3月21日月曜日

160321(2)

Ruby


素数さいころ(5)

160320 分について、並び替えを変えてみた。

require 'prime'

def test(ary)
  ary.combination(2){|c|
    return false if !((c[0] + c[1]) / 2).prime?
  }
  true
end

def search(k, n)
  ary = Prime.each(n).to_a - [2, 3]
  ary1 = ary.select{|i| i % 12 == 1}
  ary5 = ary.select{|i| i % 12 == 5}
  ary7 = ary.select{|i| i % 12 == 7}
  ary11 = ary.select{|i| i % 12 == 11}
  ans = []
  [ary1, ary5, [3] + ary7, [3] + ary11].each{|a|
    a.combination(k){|c| ans << c if test(c)}
  }
  ans
end

p search(6, 1000).sort_by{|x| x.sort{|a, b| b <=> a}}

出力結果
[[3, 11, 83, 131, 251, 383], [3, 11, 23, 71, 191, 443], [3, 11, 23, 83, 191, 443], [3, 11, 23, 83, 251, 443], [5, 29, 53, 89, 113, 449], [5, 29, 53, 89, 173, 449], [5, 29, 89, 113, 269, 449], [5, 29, 113, 269, 353, 449], [5, 17, 41, 101, 257, 461], [3, 23, 59, 83, 443, 479], [3, 59, 83, 419, 443, 479], [47, 71, 227, 311, 467, 491], [5, 29, 113, 269, 353, 509], [5, 29, 53, 113, 449, 509], [5, 29, 113, 269, 449, 509], [5, 29, 113, 353, 449, 509], [5, 29, 269, 353, 449, 509], [5, 113, 269, 353, 449, 509], [29, 113, 269, 353, 449, 509], [5, 17, 41, 101, 257, 521], [5, 17, 101, 197, 257, 521], [17, 101, 197, 257, 281, 521], [5, 17, 41, 101, 461, 521], [5, 41, 101, 173, 461, 521], [5, 17, 41, 257, 461, 521], [5, 17, 101, 257, 461, 521], [5, 41, 101, 257, 461, 521], [17, 41, 101, 257, 461, 521], [3, 23, 59, 443, 479, 563], [3, 23, 359, 443, 479, 563], [3, 59, 419, 443, 479, 563], [3, 359, 419, 443, 479, 563], [7, 19, 67, 127, 547, 607], [7, 67, 127, 151, 547, 607], [7, 67, 151, 211, 547, 607], [7, 127, 151, 271, 547, 607], [7, 151, 211, 271, 547, 607], [3, 31, 43, 103, 523, 631], [3, 43, 103, 211, 523, 631], [47, 71, 311, 467, 491, 647], [17, 41, 101, 257, 461, 677], [17, 41, 101, 257, 521, 677], [17, 101, 257, 281, 521, 677], [17, 41, 101, 461, 521, 677], [17, 41, 257, 461, 521, 677], [17, 101, 257, 461, 521, 677], [41, 101, 257, 461, 521, 677], [17, 101, 281, 521, 617, 677], [11, 23, 83, 251, 443, 683], [23, 179, 359, 443, 599, 683], [7, 67, 127, 151, 547, 691], [3, 43, 103, 523, 631, 691], [43, 103, 523, 571, 631, 691], [5, 17, 101, 197, 257, 701], [17, 101, 197, 257, 281, 701], [47, 59, 167, 419, 467, 719], [7, 19, 139, 307, 607, 739], [7, 19, 127, 547, 607, 739], [3, 23, 59, 443, 563, 743], [5, 17, 41, 101, 257, 761], [5, 17, 101, 197, 257, 761], [17, 101, 197, 257, 281, 761], [5, 41, 101, 173, 353, 761], [5, 17, 41, 101, 521, 761], [5, 41, 101, 173, 521, 761], [5, 17, 101, 197, 521, 761], [5, 17, 41, 257, 521, 761], [5, 17, 101, 257, 521, 761], [5, 41, 101, 257, 521, 761], [17, 41, 101, 257, 521, 761], [5, 17, 197, 257, 521, 761], [5, 101, 197, 257, 521, 761], [17, 101, 197, 257, 521, 761], [17, 101, 197, 281, 521, 761], [17, 101, 257, 281, 521, 761], [17, 197, 257, 281, 521, 761], [101, 197, 257, 281, 521, 761], [41, 101, 173, 521, 593, 761], [17, 41, 101, 257, 677, 761], [17, 101, 257, 281, 677, 761], [17, 41, 101, 521, 677, 761], [17, 41, 257, 521, 677, 761], [17, 101, 257, 521, 677, 761], [41, 101, 257, 521, 677, 761], [17, 101, 281, 521, 677, 761], [17, 257, 281, 521, 677, 761], [101, 257, 281, 521, 677, 761], [5, 29, 89, 113, 269, 773], [29, 113, 149, 233, 353, 773], [5, 29, 113, 269, 353, 773], [29, 113, 233, 269, 353, 773], [5, 29, 113, 269, 509, 773], [5, 29, 113, 353, 509, 773], [5, 29, 269, 353, 509, 773], [5, 113, 269, 353, 509, 773], [29, 113, 269, 353, 509, 773], [19, 43, 103, 379, 439, 823], [43, 103, 151, 523, 691, 823], [43, 103, 523, 631, 691, 823], [3, 23, 59, 83, 443, 839], [3, 23, 59, 83, 479, 839], [3, 23, 59, 443, 479, 839], [3, 23, 83, 443, 479, 839], [3, 59, 83, 443, 479, 839], [23, 59, 83, 443, 479, 839], [3, 23, 359, 443, 479, 839], [3, 23, 59, 443, 563, 839], [3, 23, 359, 443, 563, 839], [3, 23, 59, 479, 563, 839], [3, 23, 359, 479, 563, 839], [3, 23, 443, 479, 563, 839], [3, 59, 443, 479, 563, 839], [23, 59, 443, 479, 563, 839], [3, 359, 443, 479, 563, 839], [23, 359, 443, 479, 563, 839], [23, 179, 359, 443, 599, 839], [23, 83, 179, 443, 683, 839], [23, 179, 359, 443, 683, 839], [23, 179, 359, 599, 683, 839], [23, 179, 443, 599, 683, 839], [23, 359, 443, 599, 683, 839], [179, 359, 443, 599, 683, 839], [13, 61, 73, 241, 601, 853], [13, 73, 241, 373, 601, 853], [5, 41, 101, 257, 461, 857], [5, 29, 269, 449, 509, 857], [5, 257, 269, 449, 509, 857], [5, 41, 101, 257, 761, 857], [7, 19, 67, 139, 607, 859], [3, 139, 223, 523, 619, 859], [5, 17, 41, 101, 257, 881], [5, 17, 41, 101, 521, 881], [5, 17, 41, 257, 521, 881], [5, 17, 101, 257, 521, 881], [5, 41, 101, 257, 521, 881], [17, 41, 101, 257, 521, 881], [5, 17, 41, 101, 761, 881], [5, 17, 41, 257, 761, 881], [5, 17, 101, 257, 761, 881], [5, 41, 101, 257, 761, 881], [17, 41, 101, 257, 761, 881], [5, 41, 137, 257, 761, 881], [5, 41, 101, 353, 761, 881], [5, 17, 41, 521, 761, 881], [5, 17, 101, 521, 761, 881], [5, 41, 101, 521, 761, 881], [17, 41, 101, 521, 761, 881], [5, 17, 257, 521, 761, 881], [5, 41, 257, 521, 761, 881], [17, 41, 257, 521, 761, 881], [5, 101, 257, 521, 761, 881], [17, 101, 257, 521, 761, 881], [41, 101, 257, 521, 761, 881], [5, 41, 101, 521, 797, 881], [137, 317, 401, 641, 797, 881], [137, 401, 557, 641, 797, 881], [3, 43, 163, 379, 499, 883], [3, 31, 43, 163, 631, 883], [47, 71, 227, 311, 467, 887], [47, 227, 251, 311, 467, 887], [7, 19, 67, 379, 547, 907], [7, 19, 67, 139, 607, 907], [7, 19, 139, 307, 607, 907], [7, 19, 307, 439, 607, 907], [7, 19, 67, 547, 607, 907], [7, 19, 139, 307, 739, 907], [7, 19, 139, 607, 739, 907], [7, 19, 307, 607, 739, 907], [7, 139, 307, 607, 739, 907], [19, 139, 307, 607, 739, 907], [7, 19, 547, 607, 739, 907], [7, 19, 67, 139, 859, 907], [7, 19, 67, 379, 859, 907], [7, 19, 67, 607, 859, 907], [7, 19, 139, 607, 859, 907], [7, 67, 139, 607, 859, 907], [19, 67, 139, 607, 859, 907], [3, 11, 71, 131, 383, 911], [3, 11, 23, 71, 443, 911], [11, 47, 71, 131, 491, 911], [47, 71, 131, 227, 491, 911], [11, 23, 71, 443, 491, 911], [11, 23, 443, 491, 683, 911], [3, 23, 71, 443, 863, 911], [23, 71, 443, 491, 863, 911], [23, 443, 491, 683, 863, 911], [7, 79, 127, 547, 739, 919], [5, 29, 53, 89, 113, 929], [5, 29, 89, 113, 269, 929], [5, 29, 113, 269, 353, 929], [5, 29, 53, 113, 509, 929], [5, 29, 113, 269, 509, 929], [5, 29, 197, 269, 509, 929], [5, 197, 257, 269, 509, 929], [5, 29, 113, 353, 509, 929], [5, 29, 269, 353, 509, 929], [5, 113, 269, 353, 509, 929], [29, 113, 269, 353, 509, 929], [17, 41, 101, 257, 461, 941], [17, 41, 101, 257, 677, 941], [17, 41, 101, 461, 677, 941], [17, 41, 257, 461, 677, 941], [17, 101, 257, 461, 677, 941], [41, 101, 257, 461, 677, 941], [17, 101, 197, 257, 701, 941], [17, 41, 101, 461, 821, 941], [17, 101, 197, 701, 821, 941], [17, 41, 101, 257, 881, 941], [41, 101, 233, 293, 881, 941], [41, 101, 233, 353, 881, 941], [5, 29, 53, 89, 173, 953], [5, 29, 53, 89, 449, 953], [5, 29, 53, 173, 449, 953], [5, 29, 89, 173, 449, 953], [5, 53, 89, 173, 449, 953], [29, 53, 89, 173, 449, 953], [5, 29, 173, 353, 449, 953], [29, 53, 89, 173, 809, 953], [5, 29, 53, 89, 929, 953], [7, 127, 271, 547, 607, 967], [7, 79, 127, 547, 739, 967], [7, 127, 547, 607, 739, 967], [7, 547, 607, 739, 907, 967], [47, 71, 227, 311, 467, 971], [47, 167, 227, 311, 467, 971], [47, 71, 311, 467, 647, 971], [47, 71, 227, 311, 887, 971], [11, 47, 71, 467, 887, 971], [47, 71, 227, 467, 887, 971], [47, 71, 311, 467, 887, 971], [47, 227, 311, 467, 887, 971], [71, 227, 311, 467, 887, 971], [47, 71, 431, 467, 887, 971], [3, 11, 71, 383, 911, 971], [137, 197, 317, 389, 569, 977], [149, 197, 317, 389, 569, 977], [149, 317, 389, 569, 617, 977], [5, 137, 197, 257, 701, 977], [137, 317, 389, 569, 797, 977], [5, 41, 137, 257, 881, 977], [5, 41, 137, 797, 881, 977], [41, 137, 317, 797, 881, 977], [137, 317, 641, 797, 881, 977], [5, 29, 197, 509, 929, 977], [5, 197, 257, 509, 929, 977], [5, 197, 389, 509, 929, 977], [5, 389, 509, 617, 929, 977], [5, 389, 509, 797, 929, 977], [7, 151, 211, 271, 547, 991], [157, 577, 709, 769, 937, 997]]

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。