Primality by Wilson's theorem: Difference between revisions

Content added Content deleted
(Added Rust solution)
Line 200: Line 200:
# allow numbers whose factorial won't fit in 32 bits #
# allow numbers whose factorial won't fit in 32 bits #
PROC is wilson prime = ( INT p )BOOL:
PROC is wilson prime = ( INT p )BOOL:
IF p < 2 THEN FALSE
BEGIN
ELSE
INT factorial mod p := 1;
INT factorial mod p := 1;
FOR i FROM 2 TO p - 1 DO factorial mod p *:= i MODAB p OD;
FOR i FROM 2 TO p - 1 DO factorial mod p *:= i MODAB p OD;
factorial mod p = p - 1
factorial mod p = p - 1
FI # is wilson prime # ;
END # is wilson prime # ;
FOR i TO 100 DO IF is wilson prime( i ) THEN print( ( " ", whole( i, 0 ) ) ) FI OD
FOR i TO 100 DO IF is wilson prime( i ) THEN print( ( " ", whole( i, 0 ) ) ) FI OD