sigma(n)
sigma(n) = 2n + 2 となる n は
オンライン整数列大辞典のA088831(https://oeis.org/A088831/list)
によると
[20,104,464,650,1952,130304,522752,8382464, 134193152,549754241024,8796086730752]
また、sigma(n) = 2n - 2 となる n は
オンライン整数列大辞典のA191363(http://oeis.org/A191363/list)
によると
[3,10,136,32896,2147516416] |
これらのうち、200000以下のものを出力するコードを書いてみた。
def sum_of_divisors(p)
sum = 0
q = Math.sqrt(p).to_i
for i in (1..q - 1)
if p % i == 0
sum += i + p / i
end
end
if p % q == 0
if p == q * q
sum += q
else
sum += q + p / q
end
end
return sum
end
def sigma(min, max)
ary088831 = []
ary191363 = []
for i in (min..max)
j = sum_of_divisors(i) - i * 2
if j == 2
ary088831 << i
elsif j == - 2
ary191363 << i
else
end
end
return [ary088831, ary191363]
end
p sigma(1, 200000)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。