| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1820 人关注过本帖
标题:请教大家一个求素数的问题
只看楼主 加入收藏
tuzuyao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-16
结帖率:100%
收藏
 问题点数:0 回复次数:20 
请教大家一个求素数的问题
以下是我编的一个求100到200之间的素数的程序
#include<math.h>
main()
{int i,n;
 for(n=101;n<=200;n+=2)
   {for(i=2;i<=sqrt(n);i++)
       if(n%i==0) break:
       if(i>=sqrt(n)+1) printf("%d",n);
    }
 printf("\n");
}
这个程序对于大家来说都很简单,可是我运行后屏幕上没有任何显示,只是往下空了几行,当我把sqrt(n)用一个变量k代替时,输出又恢复正常,麻烦各位高手指出这其中的问题,谢了
收到的鲜花
  • liyanhong2008-10-16 23:11 送鲜花  1朵   附言:也算是经典基础题
搜索更多相关主题的帖子: 素数 
2008-10-16 11:17
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
#include<math.h>
main()
{
  int i,n;
  for(n=101;n<=200;n+=2)
  {
    for(i=2;i<sqrt(n);i++)
    if(n%i==0)
       break;
    if(i>=sqrt(n))
       printf("%d ",n);
  }
}

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-16 11:33
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
昨天我学了个快的算法
#define N 10000
main()
{
  int i,j,a[N];
  for(i=2;i<N;i++) a[i]=1;
  for(i=2;i<N;i++)
  if(a[i])
  for(j=i;j<N/i;j++) a[i*j]=0;
  for(i=2;i<N;i++)
  {
      if(a[i]) printf("%4d ",i);
      getch();
  }
  printf("\n");
}

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-16 11:35
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
筛法

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-10-16 12:06
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
[bo][un]卧龙孔明[/un] 在 2008-10-16 12:06 的发言:[/bo]

筛法


看到你好高兴啊

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-16 12:07
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
9999不是素数吧

简单的生活
2008-10-16 12:58
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
我还没注意呢

怎么么9999踢不掉呢??
不能理解

[[it] 本帖最后由 liyanhong 于 2008-10-16 13:13 编辑 [/it]]

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-16 13:01
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
5555````还没看明白你的思路...

简单的生活
2008-10-16 13:19
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
额,原来这就叫筛法啊

简单的生活
2008-10-16 13:26
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1688
专家分:4262
注 册:2007-12-27
收藏
得分:0 
回复 7# liyanhong 的帖子
因为你那里用了整数除法

j<N/i
改为
j*i<N
就好了
2008-10-16 13:55
快速回复:请教大家一个求素数的问题
数据加载中...
 
   



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

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