sub isPrime($) {
$num = shift;
my ($i,$c);
for ($i = 2; $i < $num / 2; $i++)
{
if ($num % $i == 0){$c += 1;}
}
if ($c == 1){return 1;}
return 0;
}
####
use 5.010;
use strict;
sub isPrime (_)
{
my $num = shift;
for my $div (2 .. sqrt $num) # start at 2, end at sqrt($n)
{
return if $num % $div == 0; # return false if $n evenly divides
}
return 1; # return true if we got through the entire loop
}
for (1 .. 30)
{
if (isPrime)
{
say "$_ is prime";
}
else
{
say;
}
}
##
##
use Carp qw/croak/;
sub isPrime (_)
{
my $num = shift;
return if $num == 1; # 1 is not prime
croak "usage: isPrime(NATURAL NUMBER)"
unless $num =~ /^[1-9][0-9]*$/;
for my $div (2 .. sqrt $num)
{
return if $num % $div == 0;
}
return 1;
}