Description:
Count the number of prime numbers less than a non-negative number, n.
基本思路:筛法
1, 2 为素数, 筛掉以2为因子的数。 即 2 * 2, 2*3, 2*4,2*5
2, 寻找到下一个未被筛除的数,如3. 再筛掉以3为因子的数。
3, 重复步骤2.
时间复杂度为O(n)
...
分类:
其他好文 时间:
2015-07-12 15:42:46
阅读次数:
90
素数筛选目的是筛选出某一区间[m, n)内的所有素数,常见方法包括如下几种:1.朴素的筛选法:先写出判断函数isPrime(),再对区间内的数依次调用isPrime()进行判断,算法核心是以2~根号n作为除数。#include bool isPrime(int n){ /* C+...
分类:
其他好文 时间:
2015-07-12 15:39:09
阅读次数:
144
题意:给定两个数l,r求这之间最近和最远的两个素数。数据范围是整数的上限。r-l
分析:总思路是把l和r间的素数全部找出来,然后遍历一遍求最小距离和最大距离。用一个函数预处理数据范围内的所有素数是不现实的,一来数组不可r能开那么大二来会超时。想想素数筛的思想:用sqrt(n)以内的素数筛掉n以内的所有合数,剩下n以内的素数。这里既然预处理不可能,我们一样可以用sqrt(n)以内的素数来筛,只是这...
分类:
其他好文 时间:
2015-07-05 12:32:01
阅读次数:
151
在期末被各科的大作业碾压快要窒息之际,百忙之中抽空上牛客网逛了逛,无意中发现一道好题,NowCoder猜想,题意很明显,就是个简单的素数筛法,但竟然超内存了,我晕(+﹏+)~ 明明有 3 万多 k 的空间限制……于是我不打表,试了试最暴力的做法,赤裸裸的做法果然超时了,无奈,只好对素数筛法进行位.....
分类:
其他好文 时间:
2015-07-04 18:17:57
阅读次数:
839
题意:
给一个区间[L,U],(1
由于L,U都小于2^32,所以区间内的合数的最小质因子必然小于2^16,所以先筛出2^16以内的素数,用筛出来的素数去筛[L,U]内的合数。然后把[L,U]内的素数保存下来,再搜索最近和最远的素数对即可。注意两整数相乘可能溢出32位,注意对1的判断。
代码:
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-07-02 14:07:06
阅读次数:
135
ACdream 1112 Alice and Bob (博弈&&素数筛选优化)...
分类:
其他好文 时间:
2015-06-28 15:38:55
阅读次数:
125
#include #include int tab[1000001];//以后都用宏定义 MAXint main()//如要将包括1000000在内的打表,数组就开大一个{ int a,d,n,i,j; tab[0]=0;tab[1]=0; for(i=2;i<1000001;i+...
分类:
其他好文 时间:
2015-06-19 14:58:11
阅读次数:
114
UVA 10200 区间预处理,浮点误差W -Prime TimeTime Limit:3000MSMemory Limit:0KB64bit IO Format:%lld & %lluSubmitStatusPracticeUVA 10200Description题意:测试找素数函数f(n)=n^...
分类:
其他好文 时间:
2015-06-12 00:40:37
阅读次数:
213
区间素数筛模版筛出区间[a,b]的素数。(b-a prime;bool isP[maxn];vector P;void play_prime(){ memset(isprime,1,sizeof(isprime)); isprime[1]=0; for(int i=2;i<maxn...
分类:
其他好文 时间:
2015-06-10 14:08:01
阅读次数:
101
light_oj 1197 区间素数筛M -Help HanzoTime Limit:2000MSMemory Limit:32768KB64bit IO Format:%lld & %lluSubmitStatusPracticeLightOJ 1197DescriptionAmakusa, th...
分类:
其他好文 时间:
2015-06-10 14:03:43
阅读次数:
206