# A000396 Perfect numbers k: k is equal to the sum of the proper divisors of k.
# 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, ...
# A000668 Mersenne primes (of form 2^p - 1 where p is a prime).
# 3, 7, 31, 127, 8191, 131071, 524287, ...
# A061652 Even superperfect numbers: 2^(p-1) where 2^p-1 is a Mersenne prime (A000668).
# 2, 4, 16, 64, 4096, 65536, 262144, ...
# A019279 Superperfect numbers: numbers k such that sigma(sigma(k)) = 2*k where sigma is the sum-of-divisors function (A000203).
# 2, 4, 16, 64, 4096, 65536, 262144, ...
# A000396 = A000668 * A061652
A000396 = [3, 7, 31, 127, 8191, 131071, 524287] .* [2, 4, 16, 64, 4096, 65536, 262144]
#=
7-element Vector{Int64}:
6
28
496
8128
33550336
8589869056
137438691328
=#
#####
using Dates
using Primes
function perfectnumber(n)
i = 0
p = 0
s = now()
while i < n
p = nextprime(p + 1)
m = big(2)^p - 1
if isprime(m) # Mersenne prime
e = big(2)^(p - 1) # Even superperfect number
i += 1
println("i = $i, p = $p, $(now() - s)\nMersenne prime = $m\n",
"Even superperfect number = $e\nPerfect number = $(m*e)\n")
end
end
end
@time perfectnumber(26) # n = 26; 4880.111222 seconds (47.38 k allocations: 753.351 MiB, 0.00% gc time)
26 番目の完全数まで求めるのに 81 分かかった。まあ,我慢の限界内に収まった。
#=
i = 1, p = 2, 0 milliseconds
Mersenne prime = 3
Even superperfect number = 2
Perfect number = 6
i = 2, p = 3, 0 milliseconds
Mersenne prime = 7
Even superperfect number = 4
Perfect number = 28
i = 3, p = 5, 1 millisecond
Mersenne prime = 31
Even superperfect number = 16
Perfect number = 496
i = 4, p = 7, 0 milliseconds
Mersenne prime = 127
Even superperfect number = 64
Perfect number = 8128
i = 5, p = 13, 0 milliseconds
Mersenne prime = 8191
Even superperfect number = 4096
Perfect number = 33550336
i = 6, p = 17, 0 milliseconds
Mersenne prime = 131071
Even superperfect number = 65536
Perfect number = 8589869056
i = 7, p = 19, 0 milliseconds
Mersenne prime = 524287
Even superperfect number = 262144
Perfect number = 137438691328
i = 8, p = 31, 0 milliseconds
Mersenne prime = 2147483647
Even superperfect number = 1073741824
Perfect number = 2305843008139952128
i = 9, p = 61, 1 millisecond
Mersenne prime = 2305843009213693951
Even superperfect number = 1152921504606846976
Perfect number = 2658455991569831744654692615953842176
i = 10, p = 89, 0 milliseconds
Mersenne prime = 618970019642690137449562111
Even superperfect number = 309485009821345068724781056
Perfect number = 191561942608236107294793378084303638130997321548169216
i = 11, p = 107, 0 milliseconds
Mersenne prime = 162259276829213363391578010288127
Even superperfect number = 81129638414606681695789005144064
Perfect number = 13164.....28128
i = 12, p = 127, 0 milliseconds
Mersenne prime = 170141183460469231731687303715884105727
Even superperfect number = 85070591730234615865843651857942052864
Perfect number = 14474.....52128
i = 13, p = 521, 8 milliseconds
Mersenne prime = 68647.....57151
Even superperfect number = 34323.....28576
Perfect number = 23562.....46976
i = 14, p = 607, 13 milliseconds
Mersenne prime = 53113.....28127
Even superperfect number = 26556.....64064
Perfect number = 14105.....28128
i = 15, p = 1279, 863 milliseconds
Mersenne prime = 10407.....29087
Even superperfect number = 52039.....64544
Perfect number = 54162.....91328
i = 16, p = 2203, 1580 milliseconds
Mersenne prime = 14759.....71007
Even superperfect number = 73798.....85504
Perfect number = 10892.....82528
i = 17, p = 2281, 1706 milliseconds
Mersenne prime = 44608.....36351
Even superperfect number = 22304.....18176
Perfect number = 99497.....15776
i = 18, p = 3217, 4102 milliseconds
Mersenne prime = 25911.....15071
Even superperfect number = 12955.....57536
Perfect number = 33570.....25056
i = 19, p = 4253, 4102 milliseconds
Mersenne prime = 19079.....84991
Even superperfect number = 95398.....42496
Perfect number = 18201.....77536
i = 20, p = 4423, 111683 milliseconds
Mersenne prime = 28554.....80607
Even superperfect number = 14277.....90304
Perfect number = 40767.....34528
i = 21, p = 9689, 169735 milliseconds
Mersenne prime = 47822.....54111
Even superperfect number = 23911.....77056
Perfect number = 11434.....77216
i = 22, p = 9941, 186854 milliseconds
Mersenne prime = 34608.....63551
Even superperfect number = 17304.....31776
Perfect number = 59888.....96576
i = 23, p = 11213, 284160 milliseconds
Mersenne prime = 28141.....392191
Even superperfect number = 14070.....96096
Perfect number = 39596.....86336
i = 24, p = 19937, 2610480 milliseconds
Mersenne prime = 43154.....41471
Even superperfect number = 21577.....20736
Perfect number = 93114.....42656
i = 25, p = 21701, 3784822 milliseconds
Mersenne prime = 44867.....82751
Even superperfect number = 22433.....41376
Perfect number = 10065.....05376
i = 26, p = 23209, 4880730 milliseconds
Mersenne prime = 40287.....64511
Even superperfect number = 20143.....32256
Perfect number 81153.....66816 # 13973 桁
合計 4880.111222 seconds (47.38 k allocations: 753.351 MiB, 0.00% gc time)
=#
※コメント投稿者のブログIDはブログ作成者のみに通知されます