Sequence of primes by trial division: Difference between revisions

Content added Content deleted
(Added Arturo implementation)
m (→‎{{header|Perl}}: use true/false explicitly)
Line 2,144: Line 2,144:


=={{header|Perl}}==
=={{header|Perl}}==
<lang perl>sub isprime {
<lang perl>use v5.36;
use enum <false true>;
my $n = shift;

return ($n >= 2) if $n < 4;
sub isprime ($n) {
return unless $n % 2 && $n % 3;
my $sqrtn = int(sqrt($n));
return $n > 1 if $n < 4;
for (my $i = 5; $i <= $sqrtn; $i += 6) {
return false unless $n % 2 and $n % 3;
return unless $n % $i && $n % ($i+2);
for (my $i = 5; $i <= int sqrt $n; $i += 6) {
return false unless $n % $i and $n % ($i+2);
}
1;
}
true
}
}


print join(" ", grep { isprime($_) } 0 .. 100 ), "\n";
say join ' ', grep { isprime $_ } 0 .. 100;
print join(" ", grep { isprime($_) } 12345678 .. 12345678+100 ), "\n";</lang>
say join ' ', grep { isprime $_ } 12345678 .. 12345678+100;</lang>
{{out}}
{{out}}
<pre>2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
<pre>2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97