Polite number(2)
politeness について、
オンライン整数列大辞典の
オンライン整数列大辞典の
A069283(http://oeis.org/A069283/list)
と比較し、答え合わせしてみる。
と比較し、答え合わせしてみる。
require 'prime'
def politeness(n)
return 0 if n < 2
factor = Prime.prime_division(n)
o_factor = factor.clone
o_factor.shift if o_factor[0][0] == 2
# 奇数の約数の個数 - 1
o_factor.inject(1){|a, n| a * (n[1] + 1)} - 1
end
def A069283(n)
(0..n).map{|i| politeness(i)}
end
ary = A069283(100)
# OEIS A069283のデータ
ary0 =
[0,0,0,1,0,1,1,1,0,2,1,1,1,1,1,3,0,1,2,1,1,3,1,1,
1,2,1,3,1,1,3,1,0,3,1,3,2,1,1,3,1,1,3,1,1,5,1,1,1,
2,2,3,1,1,3,3,1,3,1,1,3,1,1,5,0,3,3,1,1,3,3,1,2,1,
1,5,1,3,3,1,1,4,1,1,3,3,1,3,1,1,5,3,1,3,1,3,1,1,2,
5,2]
# 一致の確認
p ary == ary0
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。