素数でしりとり
素数を最初から順に
2 → 23 → 31 → …
とつなげていく。
オンライン整数列大辞典の
https://oeis.org/A061448/b061448.txt
に途中まで載っているが、自分で求めてみた。
(ただし、素数を列挙するという非効率なやり方です。)
require 'prime'
cnt = 0
d = 2
ary = Prime.each(10 ** 7).to_a
ary.each{|a|
str = a.to_s
if d == str[0].to_i
cnt += 1
print cnt
print ' '
puts a
d = str[-1].to_i
end
}
出力結果
1 2
2 23
3 31
4 101
5 103
6 307
7 701
8 1009
9 9001
10 10007
11 70001
12 100003
13 300007
14 700001
15 1000003
16 3000017
17 7000003
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。