| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:一个求素数的程序
只看楼主 加入收藏
qianlongsy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-1-23
收藏
 问题点数:0 回复次数:9 
一个求素数的程序

谭浩强c教材上有一个求素数的程序,见书p118T6.9
源程序如下
#include<math.h>
main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(i>=k+1)
{printf("%d",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
但我编译后却看不到显示的结果,哪位能指教一下,不胜感激!

搜索更多相关主题的帖子: 素数 
2006-02-09 14:13
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

#include <stdio.h>
#include <math.h>
void main()
{
int m,k,i,n=0;

for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;(i<=k)&&(m%i!=0);i++)
;
if(i>k)
{
printf("%5d",m);
n++;
}
if(n%10==0)
printf("\n");
}

getch();
}


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-09 15:28
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

注意for(i=2;(i<=k)&&(m%i!=0);i++)
;

和你写的区别


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-09 15:30
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
在for(i=2;i&lt;=k;i++)这句后面补上:if(m%2==0) break;这样就可以了``

我的原则很简单:不做不喜欢的事!
2006-02-09 15:36
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用lj_860603在2006-2-9 15:36:00的发言:
在for(i=2;i<=k;i++)这句后面补上:if(m%2==0) break;这样就可以了``

呵呵~~if(m%2==0) break;→if(m%i==0) break; 才对


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-09 16:00
吸血鬼王
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-12-17
收藏
得分:0 

不知道你看的是第几版的,我看第一版的就不是这样写的。

2006-02-09 16:44
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
5说的没错``我打错啦``哈哈``

我的原则很简单:不做不喜欢的事!
2006-02-09 17:04
qianlongsy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-1-23
收藏
得分:0 
我看的第二版的,我按楼上几位的改了,第二版的书上确实错了,可能是漏印了
不太应该啊
另外在书上这个程序的原题(T6.9)是求100-200间的全部素数而for(m=101;m<=200;m=m+2)中,m是=m+2,我觉得是不是改为+1
还请明白的 能来指教指教
顺便能不能把这个程序再分析一下,究竟是怎么在算?多谢

2006-02-10 00:33
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用qianlongsy在2006-2-10 0:33:00的发言:
我看的第二版的,我按楼上几位的改了,第二版的书上确实错了,可能是漏印了
不太应该啊
另外在书上这个程序的原题(T6.9)是求100-200间的全部素数而for(m=101;m<=200;m=m+2)中,m是=m+2,我觉得是不是改为+1
还请明白的 能来指教指教
顺便能不能把这个程序再分析一下,究竟是怎么在算?多谢



为什么加2?因为素数不会是偶数!除了2

[此贴子已经被作者于2006-2-10 1:29:32编辑过]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-10 01:26
qianlongsy
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-1-23
收藏
得分:0 

原来如此 多谢楼上的大侠
2006-02-10 12:49
快速回复:一个求素数的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023502 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved