How to resolve the algorithm Lucas-Lehmer test step by step in the Sidef programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Lucas-Lehmer test step by step in the Sidef 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 Sidef programming language
Source code in the sidef programming language
func is_mersenne_prime(p) {
return true if (p == 2)
var s = 4
var M = (2**p - 1)
{ s = powmod(s, 2, M)-2 } * (p-2)
s == 0
}
Inf.times {|n|
if (n.is_prime && is_mersenne_prime(n)) {
say "M#{n}"
}
}
You may also check:How to resolve the algorithm Square-free integers step by step in the Haskell programming language
You may also check:How to resolve the algorithm Order disjoint list items step by step in the Haskell programming language
You may also check:How to resolve the algorithm Averages/Simple moving average step by step in the Logo programming language
You may also check:How to resolve the algorithm Colour bars/Display step by step in the ActionScript programming language
You may also check:How to resolve the algorithm Fusc sequence step by step in the Mathematica / Wolfram Language programming language