C语言 判断素数程序 555

为什么输入101不行啊 试了好多数都行(๑˙ー˙๑)

img

img

将else if 和 else都删掉

在程序最后添加
if(i>=a)
printf("这是一个素数\n");

#include<stdio.h>
using namespace std;
int a,i;
int main(){
    printf("输入一个正整数:\n");
    scanf("%d",&a);
    for(i=2;i<a;i++)
    {
        if(a%i==0){
            printf("这个数不是素数。");
            return 0;
        }
    }
    printf("这个数是素数。");
    return 0;
}

还有,你可以优化一下:

#include<bits/stdc++.h>
using namespace std;
int a,i;
int main(){
    printf("输入一个正整数:\n");
    scanf("%d",&a);
    for(i=2;i<=sqrt(a);i++)
    {
        if(a%i==0){
            printf("这个数不是素数。");
            return 0;
        }
    }
    printf("这个数是素数。");
    return 0;
}

这样在面对较大的数时不会超时。