随笔分类 - 数学 - 素数筛
摘要:题目大意:给定四个数字 a,b,c,d,求满足 $gcd(a,x)=b,lcm(c,x)=d$ 的 x 的个数。 题解: 解法1:根据 lcm 的性质,x 一定为 d 的约数。因此,直接枚举 d 的约数,并判断是否满足上述条件即可,时间复杂度较高。 解法2:解法一中直接枚举约数会导致有大量不满足条件
阅读全文
摘要:对于 N 的质因数分解,直接从 2 开始遍历到 $\sqrt n$ 即可,最后如果 N 1,则多计入一个因子即可。 代码如下 cpp include using namespace std; const int maxn=1e5; int n,p[maxn],num[maxn],cnt; int m
阅读全文
摘要:题目大意:求出一个给定区间 [l, r] 内相邻素数之间的最大距离和最小距离。 题解:由于 l, r 的范围太大,没法直接用筛法得出区间的素数。考虑筛出区间的素数等价于筛掉区间内的所有和数, 根据算术基本定理,若 $x\in [l,r]$ 为和数,则 x 一定有一个小于 $\sqrt(r)$ 的质因
阅读全文
摘要:update:2019.3.13 代码如下 cpp include using namespace std; const int maxn=1e7+10; int n,m; bool vis[maxn]; void read_and_parse(){ scanf("%d%d",&n,&m); vis
阅读全文
摘要:核心思想:每个和数都被自己最小的素数因子筛掉。 代码如下 cpp include using namespace std; const int maxn=1e7+10; int n,m,p[maxn 3],cnt; bool vis[maxn]; void read_and_parse(){ sca
阅读全文

浙公网安备 33010602011771号