sub primep_div { my $cand = 0 + $_[0]; my($p, $sqr); 1 < $cand && $cand == int($cand) or die "error: invalid number to primep_div: $cand"; $cand < $greatest_prime_squared or die "error: number too large in primep_div: $cand"; $sqr = sqrt($cand) + 0.5; for $p (@primes) { $p <= $sqr or return 1; 0 == $cand % $p and return $p == $cand; } die "internal error: shouldn't fall through here"; }