sub isprime { my $n=shift; return undef if abs $n == 1; return isprime -$n if $n<0; return 0 if $n == 0; $n%$_ or return 0 for (2..sqrt $n); 1; }