素数表在算法中经常会用到,所以掌握一种高效求解素数表的算法是很有必要的。
这里介绍一种算法:筛法。筛法的时间复杂度我不太清楚,但我知道是接近于 O(n) 的,比一般的求解素数的算法效率要高很多,其基本思想如下:
1、要得到 2 — n 之间的所有素数,先记录下 2 — n 之间的所有整数,用集合表示 A = { 2 , 3 , 4 , 5 , 6 …… n }
2、创建一张素数表 P...
分类:
其他好文 时间:
2014-05-22 12:21:52
阅读次数:
201
Primes
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 3204
Accepted: 1245
Description
A pretty straight forward task, calculate the number of primes b...
分类:
其他好文 时间:
2014-05-22 09:02:28
阅读次数:
517
/*
* hdu How many prime numbers
* date 2014/5/13
* state AC
*/
#include
#include
#include
using namespace std;
bool isPrime(int x)
{
int sqr=sqrt(x*1.0);
for(int i=2;i<=sqr;i++)
{...
分类:
其他好文 时间:
2014-05-15 05:07:18
阅读次数:
261
l筛法求素数把从1开始的、某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1
2 3 4 5 6 7 89 1011 12 13 14 1516 17 18 19 2021 22 23 24 2526 ...
分类:
其他好文 时间:
2014-05-12 20:24:10
阅读次数:
336