or download this
sub modpow { my($b, $p, $m) = @_; my $r = 1; for (;;) { $p & 1 and $r
+= ($r * $b) % $m; 0 < ($p >>= 1) or last; $b = ($b * $b) % $m; } $r;
+}
$s = 0; for $n (2..1000) { modpow($_, $n - 1, $n) != 1 and goto G for
+2 .. $n - 1; print $n, " appears to be prime ", ++$s, "\n"; G: }