C语言 判断输入数字是否为素数 输入1到17判断都是正确的(只试到17) 但是输入9判断结果是“9是素数” 而且就9这一个数字这样 求解??

#include
int panduan(int a)
{
int m;

for(m=2;m<a;m++)
{
if(a%m==0)
{
return 0;
}

{
    return 1;
}

}
}
int main()
{

int a;
printf("请输入一个数字:");
scanf("%d",&a);
if(panduan(a))
{
printf("%d是素数",a);
}
else
{
printf("%d不是素数",a);
}
return 0;
}

1个回答

int panduan(int a)
{
int m;
for(m=2;m<a;m++)
{
if(a%m==0)
{
return 0;
}
}
return 1;
}

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复PTrrr: 程序只要有一个用例不正确就是错,我们不关心它是大错还是小错,应该关注的是你代码的逻辑。素数所有数出了1和本身都不能整除,所以要循环做完了才能返回1,而不是一个不能整除就判断出来的。
2 个月之前 回复
yjkkk_
PTrrr 我复制上你的代码就可以运行了 但为什么我原来的代码只在9处出现错误呢?
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问