帮我看看这简单的判断素数c语言程序哪里错了?

我输入的9居然是素数,应该是哪里错了。#include<stdio.h>intisPrime(intn);intmain(){intnum;scanf("%d",&num... 我输入的9居然是素数,应该是哪里错了。
#include<stdio.h>
int isPrime(int n);
int main()
{
int num;
scanf("%d",&num);
if(isPrime(num)==0)
{
printf("这不是素数");
}
else
{
printf("这是素数");
}
}
int isPrime(int n)
{
int a=2;
if(n==2)
{
n=1;
}
else
{
for(a;a<n;a++)
{
if(n%a==0)
n=0;break;
}
}
return n;
}
展开
 我来答
屹立苍穹
2020-04-30
知道答主
回答量:6
采纳率:0%
帮助的人:2.3万
展开全部
你的业务逻辑错了,错的很彻底啊,刚好反了,以下是修改后的代码,你自己比较差异:
int isPrime(int n)
{
int a=2;
for(a;a<n;a++)
{
if(n%a==0)
{
n=0;break;//只要出现整除判断失败,赋值归零
n=0;

}else{//若为素数,赋值为1
n=1;

}

}
return n;//返回值
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式