问题描述
我正在尝试检查给定的数字是否为质数,但是遇到了问题。这是代码:
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
bool isPrime(int input)
{
for (int i = sqrt(input); i >= 2; i--)
{
if (input % i == 0)
{
return false;
}
return true;
}
}
int main()
{
int input;
scanf("%d",&input);
if (isPrime(input))
{
printf("Is prime number");
} else
{
printf("Is not prime number");
}
return 0;
}
在我的isPrime
函数的代码块中,如果我将return true;
放在上述的for循环中,则在某些情况下这是错误的(例如,当input
为10时) ,它将声明10是质数)。但是,如果我将return true;
放在for循环之外,则可以正常工作。那有什么区别?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)