首页 > 其他 > 详细

筛选素数

时间:2016-08-04 10:24:02      阅读:205      评论:0      收藏:0      [点我收藏+]

功能:得到1~n范围内的所有素数,算法比较高效

 1 #include <cstdio>
 2 #include <iostream>
 3 
 4 using namespace std;
 5 const int maxn 10000000  
 6 bool visit[maxn+3];  
 7 int prime[maxn], n; ///prime存1~n的所有素数、大概有(x / lnx)个  
 8 
 9 void getprime() {  
10     memset(visit, false, sizeof(visit));  
11     int num = 0;  
12     for (int i = 2; i <= n; i++) {  
13         if ( !visit[i] )  prime[++num] = i;  
14         for (int j = 1; j <= num && i * prime[j] <= n ;  j++) {  
15             visit[ i  *  prime[j] ]  =  true;  
16             if (i % prime[j] == 0) break; //点睛之笔
17         }  
18     }  
19 } 

 

筛选素数

原文:http://www.cnblogs.com/Ash-ly/p/5735497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!