#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 关注
- 1835 浏览
添加回答
举报
0/150
提交
取消