求大家看看还缺什么?!╮(╯_╰)╭

img

img

i<=a/2改成 i<a,另外 ,还需要在for循环前判断是否小于2
if(a<2) {printf("%d不是质数",a);return;}
另外,main函数中为什么用getchar()读取啊,getchar读取的是字符,读取数字用scanf
代码修改如下:

#include <stdio.h>
void iszhishu(int a)
{
    int i;
    if(a<2)
    {
        printf("不是质数");
        return;
    }
    for(i=2;i<a;i++)
    {
        if(a%i==0)
        {
            printf("不是质数");
            return;
        }
    }
    printf("是质数");
}

int main()
{
    int began;
    scanf("%d",&began);
    iszhishu(began);
    return 0;
}

代码不对,printf("是质数")的位置错了

void iszhishu(int n)
{
    int i;
    if(n<2)
    {
        printf("不是质数");
        return;
    }
    for(i=0;i*i<=n;i++)
    {
        if(n%i==0)
        {
            printf("不是质数");
            return;
        }
    }
    printf("是质数");
}
int main()
{
    int began;
    scanf("%d",&began);
    iszhishu(began);
    return 0;
}