永发信息网

c语言求素数的程序哪里有问题?

答案:4  悬赏:60  手机版
解决时间 2021-05-20 08:17
  • 提问者网友:你挡着我发光了
  • 2021-05-19 12:02
#include<stdio.h>
void main()
{
int flag=1,i,a,n;
printf("please input a number:");
scanf("%d",&a);
n=a/2;
for(i=2;i<n&&flag==1;i++)
{
if(a%i==0)
flag=0;
}
if(flag==1)
printf("%d this is a prime\n");
if(flag==0)
printf("%d this is not a prime\n");
}
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-05-19 13:08
先确认一下,4不是素数。
for(i=2;i<n&&flag==1;i++)改为for(i=2; i<=n && flag==1; i++)
理由:我用4代入来判断的
全部回答
  • 1楼网友:琴狂剑也妄
  • 2021-05-19 16:35

#include<stdio.h> void main() { int flag=1,i,a,n; printf("please input a number:"); scanf("%d",&a); n=a/2; for(i=2;i<n&&flag==1;i++) { if(a%i==0) flag=0; } if(flag==1) printf("%d this is a prime\n",a); if(flag==0) printf("%d this is not a prime\n",a); }

***********************************************************************************************

...... 楼下匿名兄弟说得不错. 没注意测试.. 不好意思.

的确,改成for(i=2;i<=n&&flag==1;i++)才行...

  • 2楼网友:封刀令
  • 2021-05-19 16:02

后面%d 后跟变量

  • 3楼网友:空山清雨
  • 2021-05-19 14:47
#include<stdio.h> void main() { int flag=1,i,a,n; printf("please input a number:"); scanf("%d",&a); n=a/2; for(i=2;i<n&&flag==1;i++) { if(a%i==0) flag=0; } if(flag==1) printf("%d this is a prime\n",a); if(flag==0) printf("%d this is not a prime\n",a); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯