素数筛选法 素数(又称质数):指在大于一的自然数中,只能被1和它自身整除的自然数; 素数筛选法是指一种非常规的素数判定方法,比较高效率; 原理:任何数的整数倍必定不是素数,大于二的偶数必定不是素数。 我们以找出100以内的素数为例,利用原理,我们可以首先排除偶数是素数,然后进一步判断奇数 实现将偶数 ...
分类:
其他好文 时间:
2017-05-28 13:28:28
阅读次数:
143
转自:http://blog.csdn.net/dream_you_to_life/article/details/43883367 作者:Sky丶Memory 1.一个数是否为质数的判定. 质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即 ...
分类:
其他好文 时间:
2017-05-21 10:50:29
阅读次数:
201
快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 ...
分类:
其他好文 时间:
2017-04-29 17:38:02
阅读次数:
205
题意:求出[1,n]中满足gcd(a,b)=a xor b,且1<=a<=b<=n的对数 题解:首先a xor b = c,则a xor c = b,而b是a的约数,则可以使用素数筛选法的方法使用O(nlogn)枚举a与c 接着gcd需要O(logn)的时间,时间为O(n(logn)^2) 但是我们 ...
分类:
其他好文 时间:
2017-03-08 00:21:08
阅读次数:
142
方法:数论 暴力 一个正整数n的因子个数d(n) 在number theory 是一个multiplicative function,有公式。利用素数筛选先求出 sqrt(1e9)内的素数,然后对范围内每一个数求解d(n), 去最大的即可。 code: 由于范围比较小(1e4), 据说不预处理素数, ...
分类:
其他好文 时间:
2017-01-30 10:42:07
阅读次数:
301
方法:素数筛选 素数筛选法的推广。先求出H-primes, 可以证明得到,任意两个H-prime相乘,结果都是semi-prime H-number。求出范围内所有semi-primes,预处理前缀和即可。 (这里用到一种O(n) 素数筛选的方法) code: ...
分类:
其他好文 时间:
2017-01-30 10:40:27
阅读次数:
215
方法:数论 因为n <= factorsum(n) <= 1000, 可以暴力打表,求出所有n <= 1 所对应的factorsum(n), 求的时候甚至不需要O(n^0.5) 来判断因子,O(n) 判断也可以通过。 然而如果factorsum的范围很大该如何求呢。可以推导得出 。那么可以素数筛选预 ...
分类:
其他好文 时间:
2017-01-29 10:49:27
阅读次数:
215
筛选法求素数,不断的用3,5,7,等素数作为筛子,筛除这些数的倍数,即将合数筛除。用辅助数组p记录数i是否是素数。 ...
分类:
其他好文 时间:
2016-10-15 22:18:36
阅读次数:
160
题意:给定一个 n ,让你求有多少对整数 (a, b) 1 <= b <= a 且 gcd(a, b) = a ^ b。 析:设 c = a ^ b 那么 c 就是 a 的约数,那么根据异或的性质 b = a ^ c,那么我们就可以枚举 a 和 c和素数筛选一样,加上gcd, n*logn*logn ...
分类:
其他好文 时间:
2016-09-29 01:34:43
阅读次数:
157
题意 给一个数n,找出gcd(a,b) = a^b的个数 (1<=b<=a<=n)。 n的数据范围:1到30000000 思路 c满足gcd(a,b) = a^b,打表观察数据得出c = a - b;又因为c是a的约数,用类似素数筛选的方法降低时间复杂度。 总结 敲代码的时候忘记打表这个东西的存在, ...
分类:
其他好文 时间:
2016-09-27 23:20:18
阅读次数:
153