【发布时间】:2020-03-03 03:18:48
【问题描述】:
所以这个函数应该返回 0 如果不是素数,如果是素数则返回 1。我看错了吗?例如,当我给它 39 时,它说它返回 1,尽管 39 不是素数。
int is_prime(int number){
if (number == 2) {
return 1;
}
else{
for(loop_counter ; loop_counter < number ; loop_counter++){
if(number%loop_counter == 0){
return 0;
}
else{
return 1;
}
}
}
}
【问题讨论】:
-
循环在第一次迭代时停止,
if/else的两边都返回。这符合您的预期逻辑吗? -
去掉
else return 1,并在函数末尾添加return 1。 -
@harold:是的,如果不是素数,我希望它返回 0,如果是素数,则返回 1。
-
@Paul ogilvie:谢谢,成功了。
-
@KhaledYassen 是否证明
number%loop_counter != 0证明number是素数?