数学之家
标题:
C语言,检验素数程序,错在哪里?
[打印本页]
作者:
EMP震荡波
时间:
2010-8-15 11:51
标题:
C语言,检验素数程序,错在哪里?
本帖最后由 EMP震荡波 于 2010-8-15 11:55 编辑
#include<stdio.h>
#include<math.h>
void main()
{
int p=2,n,i;
while(p>=2)
{
scanf("%d",&n);
while(p<=sqrt(n))
{
if(n%p==0)
{
i=0;
p=n;
}
else
{
i=1;
p=p+1;
}
}
if(i=0)
printf("不是素数\n");
else
printf("是素数\n");
p=2;
}
}
为什么无论输入什么数,结果都是“是素数”?该怎么修改?
2.5.png
(8.54 KB, 下载次数: 132)
下载附件
保存到相册
2010-8-15 11:55 上传
作者:
战巡
时间:
2010-8-15 12:37
这个很简单..........
第22行那里,if(i=0),改成if(i==0)
顺便提一下,你这个程序会把1当作质数...
另外貌似也没有自动纠错程序,万一我输入的不是正整数,而是0、负数、小数甚至字符,它都会出问题
作者:
EMP震荡波
时间:
2010-8-15 16:04
确实存在问题,我还要考虑一下。
欢迎光临 数学之家 (http://www.2math.cn/)
Powered by Discuz! X3.1