Miller–Rabin primality test: Difference between revisions

Content added Content deleted
(added FunL)
(updated FunL)
Line 1,097: Line 1,097:


def isProbablyPrimeMillerRabin( n, k ) =
def isProbablyPrimeMillerRabin( n, k ) =
n_1 = n - 1
d = n - 1
d = n_1
s = 0
s = 0


Line 1,105: Line 1,104:
d /= 2
d /= 2


for _ <- 1..k
repeat k
a = rnd( 2, n )
a = rnd( 2, n )
x = a^d%n
x = a^d%n
Line 1,111: Line 1,110:
if x == 1 or x == n - 1 then continue
if x == 1 or x == n - 1 then continue


for _ <- 1..s - 1
repeat s - 1
x = x^2%n
x = x^2%n


if x == 1 then return false
if x == 1 then return false


if x == n_1 then break
if x == n - 1 then break
else
else
return false
return false