Anonymous user
Lucas-Lehmer test: Difference between revisions
no edit summary
(Mathematica) |
No edit summary |
||
Line 37:
Mersenne primes:
M2 M3 M5 M7 M13 M17 M19 M31
=={{header|Agena}}==
Because of the very large numbers computed, the mapm binding is used to compute with arbitrary precision.
<lang agena>
readlib 'mapm'
mapm.xdigits(100);
mersenne := proc(p::number) is
local s, m;
s := 4;
m := mapm.xnumber(2^p) - 1; # 1 shift p - 1 = 2^p - 1
if p = 2 then
return true
else
for i from 3 to p do
s := (mapm.xnumber(s)^2 - 2) % m;
od;
return mapm.xtoNumber(s) = 0
fi
end;
for i from 3 to 64 do
if mersenne(i) then
write('M' & i & ' ')
fi
od;</lang>
produces:
<lang agena>M3 M5 M7 M13 M17 M19 M31</lang>
=={{header|ALGOL 68}}==
|