随笔分类 -  数论

摘要:#include <bits/stdc++.h> using namespace std; const int N = 1e6+5; bool st[N]; int cnt; int primes[N]; void get_primes(int n){ // O(nlogn) 朴素筛法 for(in 阅读全文
posted @ 2021-04-19 08:24 popozyl 阅读(52) 评论(0) 推荐(0)
摘要:试除法分解质因数 #include <bits/stdc++.h> using namespace std; int t, x; void divide(int n){ for(int i = 2; i <= n/i; ++i){ // 大于sqrt(n)的质因子最多有一个 if(n % i == 阅读全文
posted @ 2021-04-18 22:12 popozyl 阅读(88) 评论(0) 推荐(0)
摘要:费马小定理求逆元 费马小定理定义及证明 为什么每一个$A_i \times a (mod p)$ 是独一无二的? 对于任意两个$A_i \times a$而言, 二者的差值为a的整数倍,而$(a,p)=1$,因此$(A_i,a) % p$ 一定不会得到相同的余数(同余的两个数的差值一定是mod的整数 阅读全文
posted @ 2020-10-16 09:22 popozyl 阅读(1716) 评论(0) 推荐(0)
摘要:矩阵快速幂(入门) 定义及模板 对于方阵存在求幂运算的概念。对于单个数值,我们通过将指数进行二进制拆分的思想将求幂运算的复杂度降至log(n),这种思想同样可以应用到方阵的求幂运算中。事实上,方阵的快速幂与单个数值的快速幂的写法完全一致,只需要对于乘法、取模进行运算符重载即可。 下面给出矩阵快速幂的 阅读全文
posted @ 2020-10-11 19:55 popozyl 阅读(181) 评论(0) 推荐(0)
摘要:口算训练 - HDU 6287 - 唯一分解定理 + 二分查找 唯一分解定理 一个合数N可以展开成若干个质数幂相乘的形式。 \(N = p_1^{e_1}p_2^{e_2}...p_n^{e_n}\) 一个数$M$如果是$N$的倍数,则$M$的分解式中对应的幂的指数都应不小于$N$ 本题思路 本题检 阅读全文
posted @ 2020-09-09 13:04 popozyl 阅读(160) 评论(0) 推荐(0)
摘要:求合数的所有素因子 唯一分解定理 对正整数N,存在唯一的排列**\(\{p_1,p_2,....\}\)使得\(N = \{p_1^{e_1}*p_2^{e_2}*...*p_k^{e_k}\}\)** 其中**{p_1 < p_2 < p_3 < ... < p_n}** ,是素数 求合数N的分解 阅读全文
posted @ 2020-07-22 16:42 popozyl 阅读(430) 评论(0) 推荐(0)
摘要:昨天校赛模拟赛考了个题,不会这个知识点还真做不出来。。。。 1. O(n)解法 , n 为数的大小: log10(n!)=log10(1*2*3…*n)=log10(1)+log10(2)+…+log10(n)+1 即对log10(n!)的值取整加1就是n!的位数。 1 #include <iost 阅读全文
posted @ 2020-03-29 09:09 popozyl 阅读(285) 评论(0) 推荐(0)
摘要:1. 一维前缀和 : 给你一个数列 :a1 , a2 , a3 , a4 , ....... , an 。 以及 k 次询问。 每一次询问给出两个数 L 、R ,要求你回答这个数列的 [ L , R ] 区间内所有数的和是多少 (即 sum( L,R ) ) 解法 : 1. 暴力。每次询问都用一层 阅读全文
posted @ 2020-03-01 14:46 popozyl 阅读(483) 评论(0) 推荐(0)
摘要:https://vjudge.net/contest/353158#problem/A 解线性同余方程 : ax + by = c 的一般步骤: 1. 求出 m = gcd(a,b) 2. 若 c % m != 0 -> 方程组无解 3. 若 c % m == 0 -> 将方程 ax + by = 阅读全文
posted @ 2020-01-29 11:11 popozyl 阅读(166) 评论(0) 推荐(0)