数学之家

建站
数学爱好者的家园
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1528|回复: 2
打印 上一主题 下一主题

C语言,检验素数程序,错在哪里?

[复制链接]
跳转到指定楼层
楼主
发表于 2010-8-15 11:51:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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, 下载次数: 133)

2.5.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
发表于 2010-8-15 12:37:58 | 只看该作者
这个很简单..........
第22行那里,if(i=0),改成if(i==0)

顺便提一下,你这个程序会把1当作质数...
另外貌似也没有自动纠错程序,万一我输入的不是正整数,而是0、负数、小数甚至字符,它都会出问题
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-8-15 16:04:34 | 只看该作者
确实存在问题,我还要考虑一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|网站统计|手机版|小黑屋|数学之家    

GMT+8, 2024-11-22 18:25 , Processed in 1.281259 second(s), 23 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表