2016年2月17日水曜日

160217

Ruby


Primes consisting of a digit and a string of 9's

オンライン整数列大辞典の
A141311(http://oeis.org/A141311/list)
と比較し、答え合わせしてみる。

require 'prime'

def A141311(n)
  ary = []
  i = 1
  while ary.size < n
    # 1, 4, 7 のときは3で割り切れる
    [2, 3, 5, 6, 8, 9].each{|j|
      k = j * 10 ** i - 1
      ary << k if k.prime?
    }
    i += 1
  end
  ary[0..n - 1]
end
ary = A141311(28)

# OEIS A141311のデータ
ary0 =
[19,29,59,79,89,199,499,599,1999,2999,4999,8999,
 49999,59999,79999,199999,599999,799999,2999999,
 4999999,19999999,29999999,59999999,89999999,
 799999999,59999999999,79999999999,59999999999999]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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