2015年6月21日日曜日

150621(3)

Ruby


素数を順番につなぎ合わせた数について(1)

素数を順番につなぎ合わせた数が素数になるか調べる。

require 'prime'

p_ary = Prime.each(100).to_a
(0..p_ary.size - 1).each{|i|
  j = p_ary[0..i].join.to_i
  if i == 0
    p [j, 'prime']
  else
    k = Math.sqrt(j).to_i
    l = 3
    while j % l > 0 && l <= k
      l += 2
    end
    if l <= k
      p [j, l]
    else
      p [j, 'prime']
    end
  end
}

出力結果
[2, "prime"]
[23, "prime"]
[235, 5]
[2357, "prime"]
[235711, 7]
[23571113, 23]
[2357111317, 11]
[235711131719, 7]
[23571113171923, 61]
[2357111317192329, 3]
[235711131719232931, 17]
[23571113171923293137, 7]
[2357111317192329313741, 25391]
[235711131719232931374143, 6899]
[23571113171923293137414347, 1597]
[2357111317192329313741434753, 3]
[235711131719232931374143475359, 17]
[23571113171923293137414347535961, 3]
[2357111317192329313741434753596167, 1019]
[235711131719232931374143475359616771, 3]
[23571113171923293137414347535961677173, 17]
[2357111317192329313741434753596167717379, 211]
[235711131719232931374143475359616771737983, 41378209]
[23571113171923293137414347535961677173798389, 3]
[2357111317192329313741434753596167717379838997, 479]

0 件のコメント:

コメントを投稿

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