2015年12月12日土曜日

151212(5)

Ruby


Hilbert prime(3)

Hilbert primeでないものを求めてみた。
オンライン整数列大辞典の
A054520(http://oeis.org/A054520/list)
と比較し、答え合わせしてみる。

def A054520(n)
  m = 10 ** 6
  list = Array.new(m + 1, false)
  1.step(m, 4){|i| list[i] = true}
  i = 5
  while i * i <= m
    if list[i]
      j = i + i
      while j <= m
        list[j] = false
        j += i
      end
    end
    i += 1
  end
  [1] + (5..m).select{|i| !list[i] && i % 4 == 1}[0..n - 1]
end
ary = A054520(52)

# OEIS A054520のデータ
ary0 =
[1,25,45,65,81,85,105,117,125,145,153,165,169,185,
 189,205,221,225,245,261,265,273,285,289,297,305,
 325,333,345,357,365,369,377,385,405,425,429,441,
 445,465,477,481,485,493,505,513,525,533,545,549,
 561,565,585]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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