摘要: 预备知识:裴蜀定理 a和b的最大公约数就是a和b能凑出来的最小的正整数 扩展欧几里得算法就是构造出来一种方式,使得对于任意的整数a和b,一定存在整数x和y,满足上式 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long lo 阅读全文
posted @ 2020-08-05 22:56 kyk333 阅读(158) 评论(0) 推荐(0)
摘要: 题目给出了a和p后,其实要求的就是 b是p的倍数时一定无解 b不是p的倍数时,由费马小定理一定有解 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll qmi(ll a, ll k, ll p) 阅读全文
posted @ 2020-08-05 15:29 kyk333 阅读(131) 评论(0) 推荐(0)
摘要: 快速幂时间复杂度O(log k),k是指数 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll qmi(ll a, ll k, ll p) { 5 ll res = 1; 6 while (k) 阅读全文
posted @ 2020-08-05 15:05 kyk333 阅读(123) 评论(0) 推荐(0)
摘要: 按照线性筛法求质数的方法,用O(n)的时间,求出1 ~ n中每一个数的欧拉函数 在线性筛的过程中,顺便求欧拉函数 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1e6 + 10; 4 typedef long lo 阅读全文
posted @ 2020-08-05 01:29 kyk333 阅读(372) 评论(0) 推荐(0)
摘要: 用定义求欧拉函数 互质是公约数只有1的两个整数,叫做互质整数 φ(6)= 2。1 2 3 4 5 6中和6互质的数是1和5 求一个数的欧拉函数的话,需要对这个数先分解质因数 证明方法:容斥原理 时间复杂度O(sqrt(n)) 1 #include <bits/stdc++.h> 2 using na 阅读全文
posted @ 2020-08-05 00:35 kyk333 阅读(307) 评论(0) 推荐(0)