首先介绍一下线性筛,之所以称之为线性筛是因为它的复杂度为O(n)。 与埃氏筛相比,欧拉筛不会对已经被标记过的合数再进行重复标记,它们保证每个合数只会被它的最小质因数筛去故效率更高。欧拉筛将合数分解为 (最小质因数 * 一个合数) 的形式,通过最小质因数来判断当前合数是否已经被标记过。 接着再介绍一下 ...
分类:
其他好文 时间:
2019-03-06 01:11:47
阅读次数:
128
线性筛 最初,线性筛只是用来筛质数罢了。。。 cpp void sieve(int n) { static int v[N], p[N], pr; // v[i] 表示 i 的最小质因子 // p[N] 和 pr 用来存质数表 for (int i = 2; i ...
分类:
其他好文 时间:
2019-02-27 01:02:55
阅读次数:
243
一个数 $n$ 必有一个不超过 $\sqrt n$ 的质因子。 打表处理出 $1$ 到 $\sqrt n$ 的质因子后去筛掉属于 $L$ 到 $R$ 区间的素数即可。 Code: ...
分类:
其他好文 时间:
2019-02-18 12:54:43
阅读次数:
176
https://blog.csdn.net/qq_39763472/article/details/82428602 模板来自 https://blog.csdn.net/Avalon_cc/article/details/81663214 bool isP[N]; int P[N], ind; v ...
分类:
其他好文 时间:
2019-02-15 16:02:50
阅读次数:
191
PS:求逆元的部分在文章最后。。。最好也看看前边的知识吧qwq 用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。(来自 百度百科) 一般的筛法(埃拉托斯特尼筛法)的效 ...
分类:
其他好文 时间:
2019-02-14 00:15:32
阅读次数:
165
线性筛: 线性筛是一种比较实用的筛法,它与数论中的(完全)积性函数密切相关: (完全)积性函数的定义:对于两个整数 $x_1$ 和 $x_2$ ,若有函数$f(x)$满足:$f(x_1x_2)=f(x_1)f(x_2)$,我们称$f(x)$为完全积性函数;特殊的:若 $x_1$ 和 $x_2$ 一定 ...
分类:
其他好文 时间:
2019-02-09 17:59:37
阅读次数:
164
迟到的线性筛合集。 1.线性筛质数。 这个不讲了大家都会。不过他是下面的基础。注意每个数都是被最小质因子筛去的。 2.线性筛逆元。 这个有两种做法。第一种是质数直接用费马小定理,然后根据逆元是完全积性函数直接乘起来。 第二种直接线性递推。设$p = ki + b$,则有$ki + b \equiv ...
分类:
其他好文 时间:
2019-02-09 10:24:06
阅读次数:
166
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本人今天才知道,线性筛有两种啊! 一种是欧拉筛,还有一种埃氏筛。 平时老师都说线性筛。也不知道为啥? 今天我们 ...
分类:
其他好文 时间:
2019-02-09 00:49:12
阅读次数:
166
给定一个n*n*n的立方体(中心点为原点O),选择尽量多的点,使得对于任意两点A,B,B不在线段OA上。 可以发现,原问题可转化为三维坐标下的点(x,y,z)中有多少个点的gcd(x,y,z)=1。 这道题我一开始想用欧拉函数做,但我发现需要求出1-n中与每个整数x互质的数的个数,于是试图修改一下欧 ...
分类:
其他好文 时间:
2019-02-08 19:54:51
阅读次数:
174