How to resolve the algorithm Lucas-Lehmer test step by step in the Ring programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Lucas-Lehmer test step by step in the Ring programming language
Table of Contents
Problem Statement
Lucas-Lehmer Test: for
p
{\displaystyle p}
an odd prime, the Mersenne number
2
p
− 1
{\displaystyle 2^{p}-1}
is prime if and only if
2
p
− 1
{\displaystyle 2^{p}-1}
divides
S ( p − 1 )
{\displaystyle S(p-1)}
where
S ( n + 1 )
( S ( n )
)
2
− 2
{\displaystyle S(n+1)=(S(n))^{2}-2}
, and
S ( 1 )
4
{\displaystyle S(1)=4}
.
Calculate all Mersenne primes up to the implementation's maximum precision, or the 47th Mersenne prime (whichever comes first).
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Lucas-Lehmer test step by step in the Ring programming language
Source code in the ring programming language
see "Mersenne Primes :" + nl
for p = 2 to 18
if lucasLehmer(p) see "M" + p + nl ok
next
func lucasLehmer p
i = 0 mp = 0 sn = 0
if p = 2 return true ok
if (p and 1) = 0 return false ok
mp = pow(2,p) - 1
sn = 4
for i = 3 to p
sn = pow(sn,2) - 2
sn -= (mp * floor(sn / mp))
next
return (sn=0)
You may also check:How to resolve the algorithm Towers of Hanoi step by step in the APL programming language
You may also check:How to resolve the algorithm Concurrent computing step by step in the Raku programming language
You may also check:How to resolve the algorithm Farey sequence step by step in the Ring programming language
You may also check:How to resolve the algorithm Loop over multiple arrays simultaneously step by step in the AWK programming language
You may also check:How to resolve the algorithm Keyboard input/Keypress check step by step in the C programming language