How to resolve the algorithm Lucas-Lehmer test step by step in the FunL programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Lucas-Lehmer test step by step in the FunL 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 FunL programming language

Source code in the funl programming language

def mersenne( p ) =
  if p == 2 then return true
  
  var s = 4
  var M = 2^p - 1
  
  repeat p - 2
    s = (s*s - 2) mod M

  s == 0

import integers.primes

for p <- primes().filter( mersenne ).take( 20 )
  println( 'M' + p )

  

You may also check:How to resolve the algorithm Matrix multiplication step by step in the Prolog programming language
You may also check:How to resolve the algorithm Formatted numeric output step by step in the Arturo programming language
You may also check:How to resolve the algorithm Call a function step by step in the Latitude programming language
You may also check:How to resolve the algorithm Maze generation step by step in the Elm programming language
You may also check:How to resolve the algorithm Towers of Hanoi step by step in the Elixir programming language