C语言问题请教大佬?

#include<stdio.h>intprime(intn){inti;for(i=2;i<=n/2;i++){if(n%i==0){return0;break;}el... #include<stdio.h>int prime(int n){int i;for(i=2;i<=n/2;i++){if (n%i==0){return 0;break;}elsereturn 1;}if(n=2)return 1;}int main(){int prime(int n);int n;printf("\n Input an integer:\n");scanf("%d",&n);if (prime(n))printf("\n%d is a prime.\n",n);elseprintf("%d is not a prime.\n",n);}代码如上,内容就是判断一个数是不是素数。我想问一下,为什么输入非素数63或81时,程序运行结果都是素数,为什么,能帮我指出错误,并修改一下程序吗,整体结构保持不变。谢谢 展开
 我来答
双农出海
2019-11-27 · TA获得超过111个赞
知道答主
回答量:70
采纳率:40%
帮助的人:29.9万
展开全部
首先,素数指的是质数吗?
代码晃了一眼,if里面=号错了,应该是==,等我测试一下你的代码
追问
指的是质数
追答
#include
int prime(int n)
{
int i;
if (n == 2)
return 1;
else
{
for (i = 2; i <= n / 2; i++)
{
if (n % i == 0)
{
return 0;
}

}

return 1;
}

}
int main()
{
//int prime(int n);
int n;
printf("\n Input an integer:\n");
scanf_s("%d", &n);
if (prime(n))
printf("\n%d is a prime.\n", n);
else
printf("%d is not a prime.\n", n);

}
这样就行了,判断取余那里不要else
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
榖梁跃
2019-11-27 · TA获得超过5887个赞
知道小有建树答主
回答量:2742
采纳率:58%
帮助的人:385万
展开全部

更多追问追答
追问
if n==2可以去掉的吧
追答
不可以,2也是质数,如果去掉返回的就是0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式