#include<stdio.h>#include<math.h>int main(){ int prime_number(int x); int x,b; printf("Please enter a integer:"); scanf("%d",&x); b=prime_number(x); if(b==1) printf("\n%d is a prime number\n",x); else printf("%d is not a prime number\n",x); return 0;}int prime_number(int x){ int i,j=0,k; k=sqrt(x); for(i=2;i<=k;i++) { if(x%i==0) break; if(i>=k+1) j=1; } return (j);}(为什么输出的不管是素数还是偶数都不是素数。。。)
2 回答
已采纳
慕用4063026
TA贡献195条经验 获得超115个赞
你的两个函数中判断语句都有问题,用你的修改了一下,好理解一点
#include<stdio.h>
#include<math.h>
int main()
{
int prime_number(int x);
int x,b;
printf("Please enter a integer:");
scanf("%d",&x);
if(b=prime_number(x)) //判断是否为真,也就是1,非0
printf("\n%d is a prime number\n",x);
else
printf("%d is not a prime number\n",x);
return 0;
}
int prime_number(int x)
{
int i,k;
k=sqrt(x);
for(i=2;i<=k;i++)
{
if(x%i==0) return 0; //返回假,也就是0
else return 1; //返回真,1非0都可以
}
}
风中打伞的小孩
TA贡献73条经验 获得超20个赞
一个简单的:
int isSushu(int b) {
if(b==2) return 1;//2
if(b==3) return 1;//3
if(b%2==0) return 0;//偶数直接false
for(int i=3;i<b;i=i+2) {
if(b%i==0) return 0;
}
return 1;
}- 2 回答
- 1 关注
- 1930 浏览
添加回答
举报
0/150
提交
取消
