Miller–Rabin primality test: Difference between revisions

No edit summary
Line 715:
The following code works in both languages:
<lang unicon>procedure main()
every "probably prime" == writes(primeTest(n := 901 to 1000, 10)," do")
write(n," is probably prime")
end
 
procedure primeTest(n, k)
if n = 2 then return "probably prime"n
if n%2 = 0 then return "composite"fail
s := 0
d := n-1
Line 729:
if x = (1 | (n-1)) then next
every (1 to s-1, x := (x^2)%n) do {
if x = 1 then return "composite"fail
if x = n-1 then break next
}
return "composite"fail
}
return "probably prime"n
end</lang>
 
Sample run:
<pre>->mrpt
907 911 919 937 941 947 953 967 971 977 983 991 997
907 is probably prime
911 is probably prime
919 is probably prime
929 is probably prime
937 is probably prime
941 is probably prime
947 is probably prime
953 is probably prime
967 is probably prime
971 is probably prime
977 is probably prime
983 is probably prime
991 is probably prime
997 is probably prime
-></pre>