素数を生成する漸化式(2)
素数だけを出力することができる。
require 'prime'
def A020639(n)
return 1 if n == 1
Prime.each(n){|i|
return i if n % i == 0
}
end
def A137613(n)
ary = []
a, b = 5, 5
while ary.size < n
ary << b
a += b - 1
b = A020639(a)
end
ary
end
n = 100
p A137613(n)
出力結果
[5, 3, 11, 3, 23, 3, 47, 3, 5, 3, 101, 3, 7, 11, 3, 13, 233, 3, 467, 3, 5, 3, 941, 3, 7, 1889, 3, 3779, 3, 7559, 3, 13, 15131, 3, 53, 3, 7, 30323, 3, 60647, 3, 5, 3, 101, 3, 121403, 3, 242807, 3, 5, 3, 19, 7, 5, 3, 47, 3, 37, 5, 3, 17, 3, 199, 53, 3, 29, 3, 486041, 3, 7, 421, 23, 3, 972533, 3, 577, 7, 1945649, 3, 163, 7, 3891467, 3, 5, 3, 127, 443, 3, 31, 7783541, 3, 7, 15567089, 3, 19, 29, 3, 5323, 7, 5]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。