2015年8月22日土曜日

150822(3)

Ruby


累乗数

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

def A001597(n)
  ary = [1]
  (2..Math.sqrt(n).to_i).each{|i|
    m = i * i
    while m <= n
      ary.push(m)
      m *= i
    end
  }
  # 重複したものを除き、並び替え
  ary.uniq.sort!
end
ary = A001597(1764)

# OEIS A001597のデータ
ary0 =
[1,4,8,9,16,25,27,32,36,49,64,81,100,121,125,128,
 144,169,196,216,225,243,256,289,324,343,361,400,
 441,484,512,529,576,625,676,729,784,841,900,961,
 1000,1024,1089,1156,1225,1296,1331,1369,1444,1521,
 1600,1681,1728,1764]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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