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