【发布时间】:2018-08-09 05:36:08
【问题描述】:
我尝试在 Perl 中编写一个简单的代码来确定一个数字是否可以表示为质数之和。示例代码如图:
sub funcIsPrime {
my $num = $_[0];
my $isPrime = 1;
for($i= 2; $i <= $num/2; $i++){
if($num%$i == 0){
$isPrime = 0;
last;
}
}
return $isPrime;
}
#my $num = <>;
my $num = 20;
for($i = 2; $i <= $num/2; $i++){
print "$i\t";
my $j = $num-$i;
print "$j\n";
if(funcIsPrime($i) and funcIsPrime($j)){ # Line x
print "$num = $i + $j\n";
}
}
第 x 行中的函数调用语句不执行。放在循环之外的同一行工作正常。可能的解决方案是什么?请帮忙。谢谢。
【问题讨论】:
-
Re "第 x 行的函数调用语句不执行。",这很容易通过在
funcIsPrime中添加warn("!");来反驳。你到底有什么问题? -
始终使用
use strict; use warnings qw( all );!
标签: perl loops subroutine