原理 基本思想 : 在埃氏筛法的基础上,让每个合数只被它的最小质因子筛选一次,以达到不重复的目的。 关键: if(i%prime[j]==0)break; 理解: 当 i是prime[j]的倍数时,i = k × prime[j], 如果继续运算 j+1, i × prime[j + 1] = pr ...
转载
2021-09-13 20:04:00
228阅读
2评论
欧拉线筛效率高(建议背代码), 时间复杂度接近O(n),常数不大,田野大神说可以忽略。优点还在于可以同时求出phi, 这样效率极高算法导论p553写了一些 在洛谷P1579 哥德巴赫猜想(升级版)用到了 新账号里 那题代码
转载
2017-04-19 21:20:00
63阅读
2评论
1968: [Ahoi2005]COMMON 约数研究 Description Input 只有一行一个整数 N(0 < N < 1000000)。 Output 只有一行输出,为整数M,即f(1)到f(N)的累加和。 Sample Input 3 Sample Output 5 题解 我们知道一个
原创
2021-07-20 14:49:53
86阅读
欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。 POJ 2407.Relatives-欧拉函数 代码O(sqrt(n)): 欧拉线性筛素数 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)基础题贴个板子备忘 代码改了一点东西O(n): 最后传送一下队友的博客:
原创
2021-07-22 16:16:14
200阅读
Leetcode每日一题题目链接: 204. 计数质数难度: 简单解题思路 : 查找小于n的素数的个数,先用欧拉筛法初始化到所有的素数。然后再统计结果。题解:class Solution: def countPrimes(self, n: int) -> int: if n <= 1: return 0 # 欧拉筛法(小于) visit = [0] * n visit[0] = visit[
原创
2021-08-31 13:37:33
159阅读
#include<bits/stdc++.h>using namespace std;#define maxn 200005bool check[max
原创
2023-04-24 21:31:24
55阅读
代码如下,时间复杂度为O(n) int prime[maxn],num=0; int visit[maxn]; //we should initiate all above to 0 void FindPrime() { for (int i = 2; i <= maxn; i++) { if (! ...
转载
2021-07-29 16:19:00
121阅读
2评论
Sum问题分析题意:我们将类似于6=2⋅36=2⋅36 = 2\cdot 3这样的数称为asquare−freeintegerasquar
原创
2022-11-30 13:11:45
60阅读
来源:模板题目描述:用线行筛筛选素数,将指定范围的素数找出,
原创
2023-03-20 14:54:15
80阅读
线性筛是一个比较有用的东东, 所以得好好记住辣。。。 对于普通的筛素数方法, 就就能优化到
原创
2022-09-15 13:01:56
219阅读
注意 if(i%prime[j]==0) 不要写成if(!i%prime[j])
原创
2021-06-05 09:31:07
154阅读
定理: (以下p均为质数) 1. φ(p)=p-1 3. 如果 i mod p ≠ 0 那么 φ(i*p)=φ(i)*φ(p) 2. 如果 i mod p = 0 那么 φ(i*p)=φ(i)*p 证明(其实只要知道结论就好了,证明可以跳过): 1. 因为$p$是质数,所以$1$ 到 $p$的所有数
转载
2018-10-12 18:45:00
189阅读
线性筛法求欧拉函数 int primes[N],cnt; //线性筛质数的primes数组和cnt int phi[N]; //phi表示欧拉函数 bool st[N]; void get_eulers(int n) { /*1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。*/ ph ...
转载
2021-08-24 00:25:00
778阅读
2评论
欧拉函数:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6;
bool vis[maxn];
int prime[maxn];
int phi[maxn];
void init()
{
memset(v...
原创
2023-02-14 12:50:46
70阅读
素数筛法(普通、朴素筛法、埃式筛法、欧拉筛法)1.题目2.分析3.代码传统普通朴素筛法埃式筛法欧拉筛法(线性筛)4.总结5.更新日志1.题目题目链接题目描述**输入一个自然数
原创
2022-05-10 23:10:37
500阅读
单次 \(\varphi(n)=n\prod_{p|n}(1-\frac{1}{p})\) p不重复取 积性 \[ a,b互质,则\varphi(ab)=\varphi(a)\varphi(b)\\ p为质数,p|n,当p^2|n时,\varphi(n)=\varphi(n/p)p,当p^2\nmi ...
转载
2021-09-10 15:43:00
79阅读
2评论
标题效果:定整N(N <= 1e7),乞讨1<=x,y<=N和Gcd(x,y)素数的数(x,y)有多少.、
思考:推,。
建立gcd(x,y) = p,然后,x / p与y / p互素
问题就转化成了N / p中有多少个数互质,然后累加就能够了.
=>对于随意a,b,a <= N / p,b <= N / p,且a与b互质
=>gcd(a,b) ==
转载
2015-10-25 09:33:00
43阅读
2评论
从前有一个素数筛法叫埃拉托斯特尼筛法,它的思想很简单,把1-n以内素数的整数倍的数字划掉,留下的就全是素数,但是它的复杂度是O(NlglgN),对于大量不友好数据会跪,于是线性晒登场了。 #include <cstring> using namespace std; int prime[110000 ...
转载
2021-10-21 16:20:00
467阅读
2评论