我正在尝试编写一个子程序,用于确定传入的数字是否为质数,并且它不能正常工作。我输入的数字不应被识别为主要数据。有没有逻辑错误,或者我错过了一些关于Perl的东西?Perl:查找给定的数字是否是素数
sub isPrime {
my ($n) = @_;
for (my $i = 3 ; $i < $n ; $i++) {
if ($n % $i == 0) {
return 0;
}
else {
return 1;
}
}
}
你知道偶数不是素数吗? –
您只需要测试sqrt($ n)。对于大型的n,有更有效的方式(谷歌素数号码)。 – xxfelixxx
也应删除else块,并在for循环后放回1。 – xxfelixxx