码迷,mamicode.com
首页 > 编程语言 > 详细

30. 蛤蟆的数据结构笔记之三十数组之厄拉多塞筛

时间:2015-07-11 09:16:27      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

30. 蛤蟆的数据结构笔记之三十数组之厄拉多塞筛

         本篇名言:“勤劳远比黄金可贵。 -- 萨迪”

欢迎转载,转载请标明出处:


1.  厄拉多塞  

厄拉多塞是一位古希腊数学家,他在寻找素数时,采用了一种与众不同的方法:先将2-N的各数放入表中,然后在2的上面画一个圆圈,然后划去2的其他倍数;第一个既未画圈又没有被划去的数是3,将它画圈,再划去3的其他倍数;现在既未画圈又没有被划去的第一个数是5,将它画圈,并划去5的其他倍数……依次类推,一直到所有小于或等于N的各数都画了圈或划去为止。这时,表中画了圈的以及未划去的那些数正好就是小于 N的素数。

PS:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数

2.  代码实现

运行如下:

技术分享

代码中N表示求多少数内的素数。

2.1         源码

#include "stdio.h"

#include "malloc.h"

 

#define N10000

void main()

{

    inti,j,a[N+1];

 

         //初始化为1

    for(i=2;i<N+1;i++)

       a[i]=1;

 

    for(i=2;i<N+1;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);

       printf("\n");

}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

30. 蛤蟆的数据结构笔记之三十数组之厄拉多塞筛

标签:

原文地址:http://blog.csdn.net/notbaron/article/details/46835021

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!