RosettaCodeData/Task/Semiprime/Perl/semiprime-3.pl

10 lines
210 B
Perl
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
use ntheory qw/factor is_prime trial_factor/;
sub issemi {
my $n = shift;
if ((my @p = trial_factor($n,500)) > 1) {
return 0 if @p > 2;
return !!is_prime($p[1]) if @p == 2;
}
2 == factor($n);
}