裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

26 番目までの完全数,メルセンヌ素数

2021年07月14日 | ブログラミング

# 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)
=#

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村