C语言 素数判断 1为素数 0为非素数,但不管我输入什么数字都显示是素数

2025-04-15 14:25:11
推荐回答(3个)
回答1:

#include
int isPrime(int x){
    int i;
    if(x>3)
        for(i=2;i<=x/2+1;i++)
            if(x%i==0) return 0;
    return 1;
}
int main(){
    int m;    
    printf("Input Number:");
    scanf("%d",&m);
    if(isPrime(m))
        printf("%d is a Prime number\n",m);
    else
        printf("%d is not a Prime number\n",m);
    return 0;
}

调试过了,可行的、优化后的代码

回答2:

for (i = 2; i <= x - 1; i++)
{
    if (x % i == 0)
        return 0;
}
return 1;

IsPrime最后的for循环改成上面这样

回答3:

循环的判断时,一个不能整除就返回1了——————要等循环结束,才知道是否最终能整除。

~