2016年3月5日土曜日

160305

Ruby


Number of unitary divisors of n

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

def A034444(n)
  # 2以上のとき、1と自分自身
  a = Array.new(n + 1, 2)
  a[0], a[1] = 1, 1
  i = 2
  while i * i < n
    (i + 1..n / i).each{|j| a[i * j] += 2 if i.gcd(j) == 1}
    i += 1
  end
  a[1..-1]
end
ary = A034444(105)

# OEIS A034444のデータ
ary0 =
[1,2,2,2,2,4,2,2,2,4,2,4,2,4,4,2,2,4,2,4,4,4,2,4,
 2,4,2,4,2,8,2,2,4,4,4,4,2,4,4,4,2,8,2,4,4,4,2,4,2,
 4,4,4,2,4,4,4,4,4,2,8,2,4,4,2,4,8,2,4,4,8,2,4,2,4,
 4,4,4,8,2,4,2,4,2,8,4,4,4,4,2,8,4,4,4,4,4,4,2,4,4,
 4,2,8,2,4,8]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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