| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 445 人关注过本帖
标题:谁能告诉我筛选法求素数怎么实现
只看楼主 加入收藏
guoyouy
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-29
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
谁能告诉我筛选法求素数怎么实现
如题,谢谢了
2013-10-29 09:01
todayzjs
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:30
专家分:121
注 册:2013-7-1
收藏
得分:10 
程序代码:
设置SIZE来选择范围。lz自己再看看

#include <stdio.h>

#define SIZE 200

int main()
{
  int a[SIZE];
  int i, j;

  for(i = 0; i < SIZE; i++)
    a[i] = i + 2;

  for(i = 0; i < SIZE; i++)
    {
      if(a[i])
        {
          for(j = i + 1; j < SIZE; j++)
            if(a[j] % (a[i]) == 0)
              a[j] = 0;
        }
    }

  for(i = 0; i < SIZE; i++)
    if(a[i])
      printf("%d\n", a[i]);

  return 0;
}
2013-10-29 09:40
guoyouy
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-29
收藏
得分:0 
回复 2楼 todayzjs
谢谢你,我刚才也想了一种
#include <stdio.h>
void main(){
    int a[1001];
    int i,j,k,l;
    for(k=0;k<=1000;k++)
    a[k]=k;
    a[0]=0;
    a[1]=0;      //先建立一个数组a[k].让a[0]和a[1]的值为0.
    {for(i=2;i<1000;i++)
        for(j=i+1;j<1000;j++)
        { if(j%i==0&&a[i]!=0)
          a[j]=0;
        }
    }           //进行循环,如果j能被i整除且a[i]不等于0,让a[j]==0.
    for(l=0;l<1000;l++)
    if(a[l]!=0)
        printf("%d\n",l);
}//输出素数.
   
帮我看看这个怎么样,谢了
2013-10-29 09:43
todayzjs
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:30
专家分:121
注 册:2013-7-1
收藏
得分:10 
lz的程序可以,只是能再规范一点就好了,
例如尽量不要用变量l,因为和1实在是太像了。
其他的就是一些个人风格了。
lz自己思考的程序,对于自己来说就是好的程序,至少是自己动脑思考的。
很不错。
2013-10-29 11:01
guoyouy
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-29
收藏
得分:0 
回复 4楼 todayzjs
嗯,谢谢
2013-10-30 12:24
快速回复:谁能告诉我筛选法求素数怎么实现
数据加载中...
 
   



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

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