素数筛法
来源:互联网 发布:量化派 人工智能 编辑:程序博客网 时间:2024/05/09 04:54
我也蠢蠢欲动,写个素数筛法。有一些问题必须先存储一个素数表,然后查表。
这时就要用到素数筛。具体的筛法见代码,具体原理这两篇文章有很好的介绍:
http://blog.aikilis.com/1299.html
http://blog.aikilis.com/1287.html
我的代码主要是用bit做合数标记,在素数范围较大时能够有效地节省内存。
#include <stdio.h>#include <math.h>#define MAXN 1000000int f[MAXN/32+1];int prime[87000]; // 1.2 * MAXN / ln( MAXN )int cnt = 0;#define TEST( n ) ( f[n>>5] & (1<<(n&31) ) )#define SET( n ) ( f[n>>5] |= (1<<(n&31)) )void sieve( int x ) { int rt = sqrt( (double)x ) + 1; prime[cnt++] = 2; for( int i = 3; i <= x; i += 2 ) { if( !TEST(i) ) { prime[cnt++] = i; if( i < rt ) for( int j = i * i; j <= x; j += i ) SET( j ); } }}int main() { sieve( 1000000 ); printf( "cnt = %d\n", cnt ); return 0;}
- 又见素数(素数筛法)
- nyoj 26 孪生素数 素数筛法
- HDU 4548 美素数 // 素数筛法
- 素数判断和素数筛法
- 素数筛法-----》大规模的判断素数
- 素数筛(筛选法求素数)
- 素数筛选法(素数筛)
- 森德拉姆素数筛法
- 素数筛法
- 素数筛法
- 筛法素数表
- 筛素数法
- POJ2262 素数筛法
- POJ3306 素数筛法
- 素数筛法
- 素数筛法
- 素数筛法
- 【数学】素数筛法
- 利用PorterDuff.Mode做橡皮擦效果
- Ubuntu Linux下设置IP的配置命令
- git 基本命令介绍
- 第九次上机
- 程序员必看书籍之一:编码:隐匿在计算机软硬件背后的语言
- 素数筛法
- 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
- Android网络编程(一)
- 遍历python字典几种方法
- 利用百度云平台建立Web App
- 在liferay中如何从JSP中获取用户的角色
- poj 3264 Balanced Lineup(线段树无区)
- 匈牙利命名法规则大全
- JQuery快速学一(强悍的选择器)