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}}==
Anonymous user