RosettaCodeData/Task/Long-primes/Perl/long-primes-1.pl
2023-07-01 13:44:08 -04:00

17 lines
469 B
Raku

use ntheory qw/divisors powmod is_prime/;
sub is_long_prime {
my($p) = @_;
return 0 unless is_prime($p);
for my $d (divisors($p-1)) {
return $d+1 == $p if powmod(10, $d, $p) == 1;
}
0;
}
print "Long primes 500:\n";
print join(' ', grep {is_long_prime($_) } 1 .. 500), "\n\n";
for my $n (500, 1000, 2000, 4000, 8000, 16000, 32000, 64000) {
printf "Number of long primes $n: %d\n", scalar grep { is_long_prime($_) } 1 .. $n;
}