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时,程序运行结果都是素数,为什么,能帮我指出错误,并修改一下程序吗,整体结构保持不变。谢谢
展开
2个回答
展开全部
首先,素数指的是质数吗?
代码晃了一眼,if里面=号错了,应该是==,等我测试一下你的代码
代码晃了一眼,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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询