21 lines
909 B
Text
21 lines
909 B
Text
include mpfr.e
|
|
atom t0 = time()
|
|
mpz n = mpz_init(), m = mpz_init()
|
|
sequence validp = {2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607,
|
|
1279, 2203, 2281, 3217, 4253, 4423, 9689, 9941, 11213,
|
|
19937, 21701, 23209, 44497, 86243, 110503, 132049, 216091,
|
|
756839, 859433, 1257787, 1398269, 2976221, 3021377, 6972593,
|
|
13466917, 20996011, 24036583, 25964951, 30402457, 32582657,
|
|
37156667, 42643801, 43112609, 57885161,
|
|
74207281, 77232917, 82589933}
|
|
if platform()=JS then validp = validp[1..35] end if -- (keep it under 5s)
|
|
for p in validp do
|
|
mpz_ui_pow_ui(n, 2, p)
|
|
mpz_sub_ui(n, n, 1)
|
|
mpz_ui_pow_ui(m, 2, p-1)
|
|
mpz_mul(n, n, m)
|
|
string ns = mpz_get_short_str(n,comma_fill:=true),
|
|
et = elapsed_short(time()-t0,5,"(%s)")
|
|
printf(1, "%d %s %s\n",{p,ns,et})
|
|
end for
|
|
?elapsed(time()-t0)
|