求素数个数问题

[复制链接]
查看11 | 回复3 | 2010-9-2 09:48:52 | 显示全部楼层 |阅读模式
#include"stdio.h"
#include"math.h"
void main()
{
int t=sqrt(200);
int m,n=2;
int i=0;

for(m=101;m=t+1) i++;printf("%d是素数",m);break;
}
}
printf("共有素数%d个",i);
}
凡是5的倍数都输出了 怎么回事?哪里出错了?
1楼是不对。我不知道哪里错了 麻烦告诉我

回复

使用道具 举报

千问 | 2010-9-2 09:48:52 | 显示全部楼层
#include"stdio.h"#include"math.h"void main(){ int t=sqrt(200); int m,n=2; int i=0;for(m=101;m=t+1) //退出条件 {
i++;
printf("%d是素数",m);
回复

使用道具 举报

千问 | 2010-9-2 09:48:52 | 显示全部楼层
初始化的问题:因为你的n只初始化了一次,而在后面却不停的调用了很多次,在第一次进入for循环以后,n就已经大于sqrt(200)了,所以每次进while()循环的时候if语句总会执行;改法:if(n>=t+1) {i++;printf("%d是素数",m);n=2;break;}
回复

使用道具 举报

千问 | 2010-9-2 09:48:52 | 显示全部楼层
这几个语句改一下if(n>=t+1) i++;printf("%d是素数",m);break;你没有加括号,改成这样if(n>=t+1) {i++;printf("%d是素数",m);break;}
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行