PRINT "Number to test" INPUT N IF N < 0 THEN LET N = -N IF N = 2 THEN GOTO 30 IF N < 2 THEN GOTO 40 LET F = 1 LET J = 1 10 LET J = J + 1 REM exploits the fact that (F mod N)*J = (F*J mod N) REM to do the factorial without overflowing LET F = F * J GOSUB 20 IF J < N - 1 THEN GOTO 10 IF F = N - 1 THEN PRINT "It is prime" IF F <> N - 1 THEN PRINT "It is not prime" END 20 REM modulo by repeated subtraction IF F < N THEN RETURN LET F = F - N GOTO 20 30 REM special case N=2 PRINT "It is prime" END 40 REM zero and one are nonprimes by definition PRINT "It is not prime" END