理论及实现 定义: 若一个正整数无法被除了1和它本身的之外的任何自然数整除,则称该为质数(素数),否则称该正整数为合数。 判定方法 试除法 引理: 若一个正整数$N$为合数,则存在一个能整除$N$的数$T$且$2≤T≤ \sqrt N$ 证明就不再赘述,读者可以自行验证: 因此,我们只需要枚举$2 ...
分类:
其他好文 时间:
2019-09-22 14:51:55
阅读次数:
105
1.素数定理: π(x)~x/ln(x) 其中π(x)是不超过x的范围中素数的个数,当x非常大时,π(x)与x/ln(x)比较接近。 2.埃拉托色尼筛法 应用:可以快速找到[2, n]内所有的素数。操作步骤如下: (1)输出最小的素数2,然后筛掉2的倍数 (2)输出最小的素数3,然后筛掉3的倍数 ( ...
分类:
其他好文 时间:
2019-09-19 21:26:45
阅读次数:
100
简单的引入一下欧拉函数 素数筛选知道4种,暴力筛(逐个判断),埃拉特斯特尼筛 ,欧拉线性筛 ,一个大于5的素数一定在6的倍数周围(PS:不知道官方名是什么) 埃拉特斯特尼筛法。时间复杂度为O(n loglog n) 欧拉线性筛法 时间复杂度(o(n) ) 一个大于5的素数一定在6的倍数周围 证明: ...
分类:
其他好文 时间:
2019-08-29 13:38:26
阅读次数:
101
很久没做过莫比乌斯反演的题了,发现自己忘记莫比乌斯函数的线性筛法了,贴个模板方便复习吧 有一个埃氏筛做法,为了避免弄混,就只记一个好了 include using namespace std; define go(i,a,b) for(int i=a;ib) swap(a,b); for(int d ...
参考博客: https://www.cnblogs.com/Duahanlang/p/3212323.html 1.遇见素数时将该素数的倍数都筛掉 //缺陷是会重复筛选有不同素数因子的合数 如 10=2*5 ,将被筛两次 2.线性筛法 当i遍历到为前面已经存储的素数的倍数时跳出循坏 3.进一步优化 ...
分类:
其他好文 时间:
2019-08-13 15:29:57
阅读次数:
74
介绍 Eratosthenes筛法,又名埃氏筛法,对于求1~n区间内的素数,时间复杂度为n log n,对于10^6^ 以内的数比较合适,再超出此范围的就不建议用该方法了。 筛法的思想特别简单: 对于不超过n的每个非负整数p, 删除2p, 3p, 4p,…, 当处理完所有数之后, 还没有被删除的就是 ...
分类:
其他好文 时间:
2019-08-12 23:40:48
阅读次数:
99
幸运数是经由类似埃拉托斯特尼筛法的演算法后留下的整数集合,是在1955年波兰数学家乌拉姆提出。 由一组由1开始的数列为例: 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, …先将所有偶数删去,只留下 ...
分类:
其他好文 时间:
2019-08-11 17:39:15
阅读次数:
265
七夕节 HDU - 1215 题目链接:https://vjudge.net/problem/HDU-1215#author=0 题目: 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告示前, ...
分类:
其他好文 时间:
2019-08-11 09:14:05
阅读次数:
101
题意: 给你一个1e9-1e14的质数P,让你找出这个质数的前一个质数Q,然后计算Q!mod P 题解: 1e9的数据范围pass掉一切素数筛法,考虑Miller-Rabin算法。 米勒拉宾算法是一种判断素数的随机化算法,由于其随机性,它不能保证总是正确的,但其对于一个素数,总会返回素数的结果,对于 ...
分类:
其他好文 时间:
2019-07-30 15:29:24
阅读次数:
116