码迷,mamicode.com
首页 > 其他好文 > 详细

素数筛选法

时间:2015-09-03 14:04:16      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

素数是遇到的问题经常出现的内容,判断一个数是否是素数,基本上所有人都会,但是如果是很大范围内求素数,普通的方法求容易超时,于是就可以用到可以模板,素数打表。

 

 1 //求一千万以内的素数
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 using namespace std;
 6 int a[10000005];
 7 void sushu()
 8 {
 9     memset(a,0,sizeof(a));  //所有的数标记为0,0表示素数,1表示非素数
10     a[0]=1,a[1]=1;      //0,1标记为非素数
11     for(int i=2; i<=5000000; i++)
12     {
13         if(!a[i])
14             for(int j=i+i; j<=10000000; j+=i)  //每一位由素数组成的数,一定不是素数
15             {
16                 a[j]=1;
17             }
18     }
19     for(int i=1; i<=1000; i++)
20         if(!a[i])
21             printf("%d ",i);
22 }
23 int main()
24 {
25     sushu();
26 }

 

素数筛选法

标签:

原文地址:http://www.cnblogs.com/pshw/p/4780129.html

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