| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2056 人关注过本帖
标题:厄拉多赛筛法求素数 编译无错 求指教
取消只看楼主 加入收藏
叶子1030
Rank: 2
来 自:西安
等 级:论坛游民
帖 子:12
专家分:14
注 册:2016-4-19
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:0 
厄拉多赛筛法求素数 编译无错 求指教
基本方法如下:
先列出从2~N的全体自然数,其中,2 是素数,在该数列中将2及其倍数去掉;
接下来数列中最小的3是素数,再将数列中的3及其倍数去掉;
接下来数列中最小的5是素数,…,重复该过程,直到数列为空。
每次从数列中取出的最小数构成不超过N的全体素数。

#include<stdio.h>
#include<stdlib.h>
#define N 20
int main()
{
    int a[N];
    int b[N];
    int i=2;
    int p=0;
    for(i=2;i<N;i++)
    {
        a[i]=i;
    }
    for(i=2;i<N;i++)
    {
        if(0!=a[i])
        {
         p=a[i];
         b[i]=a[i];
         for(i=2;i<N;i++)
         {
                if(!i%p)
                a[i]=0;
                }
            }
    }
    printf("N=%d  不大于N的素数为:\n",N);
    for(i=2;i<N;i++)
    {
        if(b[i])
        printf("%d.\n",b[i]);
        }
        system("pause");
        return 0;
    }
        
        
        
        
        
2016-04-23 12:48
快速回复:厄拉多赛筛法求素数 编译无错 求指教
数据加载中...
 
   



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

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