有些题目让你求一个区间的素数 基于普通的埃氏筛法, 衍生出区间筛法,例如求 [ a, b ]内的素数,可以先将 [ 0, 根号b ]内的素数全都找出来,然后在将 [ a, b ]内是其 [ 0, 根号b ] 中素数的倍数的数全部划去,区间剩余的数即为素数。 ...
分类:
其他好文 时间:
2017-11-14 22:29:43
阅读次数:
141
【素数判定】 假设输入的都是正数,时间复杂度O(sqrt(n)) 【因数枚举】 时间复杂度O(sqrt(n)). 【质因数分解】 时间复杂度O(sqrt(n)). 【n以内的素数】 埃氏筛法,时间复杂度O(log(log(n))),近似于O(n)。 ...
分类:
编程语言 时间:
2017-11-09 00:49:24
阅读次数:
196
知识点: 1.整数 1.1埃氏筛法:暴力枚举打表 O(nloglogn) 1.2线性筛法:对于每个数x,遇到x%prime[i]==0的第一个i退出,使得每个合数都被它的最小质因子筛掉 O(n) 例1.1H-合成数poj3292:暴力的一题 筛数打标记O(nlogn) 例1.2求最小质数:平均每O( ...
分类:
其他好文 时间:
2017-10-24 22:42:39
阅读次数:
189
1 //埃氏筛法 2 int prime[N]; 3 bool is_prime[N+1]; 4 5 //返回n以内素数的个数 6 int sieve(int n){ 7 int p=0; 8 for(int i=0;i<=n;i++) is_prime[i]=1; 9 is_prime[0]=is... ...
分类:
其他好文 时间:
2017-10-14 17:00:15
阅读次数:
136
1.素数筛(线筛): 时间复杂度为O(n),可以筛选出n以内的所有素数,共有tot个,prime[x]==true,则x是素数 筛选原理: 任意一个数乘以比它小的素数的结果都是合数 遇到最小质因子就跳出循环,保证每个合数被其最小质因子筛去 附上代码: 利用了每个合数必有一个最小素因子。每个合数仅被它 ...
分类:
其他好文 时间:
2017-10-01 16:18:42
阅读次数:
226
要枚举n以内的素数,可以用埃氏筛法。这是一个与辗转相除法一样古老的算法。 首先,将2到n范围内的所有整数写下来。其中最小的数字2是素数。将表中所有2的倍数都划去。表中剩余的最小数字是3,它不能被更小的数整除,所以是素数。再将表中所有3的倍数全都划去。依次类推,如果表中剩余的最小数字是m时,m就是素数 ...
分类:
其他好文 时间:
2017-09-07 20:21:08
阅读次数:
127
关于线性筛法 线性是指O(n)内筛掉所有合数,还有一种方法叫埃氏筛法,我先证明埃氏筛法效率低,也就是会有重复。 证明如下: 埃氏筛法的原理是找到一个素数后,它的1~n倍就会被筛掉,任何一个合数都可以被拆成一个质数*合数的形式,我们对每一个质数对应的可能的(合)数都枚举了,这就保证了所有可能的合数都被 ...
分类:
其他好文 时间:
2017-08-20 22:43:25
阅读次数:
419
果然还是太弱了啊。连着被ljj虐两天,暴力都一脸mengbi. 表示是时候好好整理一下数论了。 NOIP难度: 数论 1.gcd、lcm 2.埃氏筛法 3.exgcd,求解同余方程、逆元 4.快速幂 5.*组合数学 6.矩阵 7.欧拉函数 8.容斥原理 9.期望 省选难度: 1.7 数学相关 1. ...
分类:
其他好文 时间:
2017-06-29 22:08:50
阅读次数:
128
filter 阅读: 265432 Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 例如,在一个li ...
分类:
编程语言 时间:
2017-05-14 00:59:11
阅读次数:
259
分拆素数和 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2098 Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输 ...
分类:
其他好文 时间:
2017-05-03 09:20:12
阅读次数:
166