随笔分类 - 数论
摘要:#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
阅读全文
摘要:试除法分解质因数 #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 ==
阅读全文
摘要:费马小定理求逆元 费马小定理定义及证明 为什么每一个$A_i \times a (mod p)$ 是独一无二的? 对于任意两个$A_i \times a$而言, 二者的差值为a的整数倍,而$(a,p)=1$,因此$(A_i,a) % p$ 一定不会得到相同的余数(同余的两个数的差值一定是mod的整数
阅读全文
摘要:矩阵快速幂(入门) 定义及模板 对于方阵存在求幂运算的概念。对于单个数值,我们通过将指数进行二进制拆分的思想将求幂运算的复杂度降至log(n),这种思想同样可以应用到方阵的求幂运算中。事实上,方阵的快速幂与单个数值的快速幂的写法完全一致,只需要对于乘法、取模进行运算符重载即可。 下面给出矩阵快速幂的
阅读全文
摘要:口算训练 - HDU 6287 - 唯一分解定理 + 二分查找 唯一分解定理 一个合数N可以展开成若干个质数幂相乘的形式。 \(N = p_1^{e_1}p_2^{e_2}...p_n^{e_n}\) 一个数$M$如果是$N$的倍数,则$M$的分解式中对应的幂的指数都应不小于$N$ 本题思路 本题检
阅读全文
摘要:求合数的所有素因子 唯一分解定理 对正整数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的分解
阅读全文
摘要:昨天校赛模拟赛考了个题,不会这个知识点还真做不出来。。。。 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
阅读全文
摘要:1. 一维前缀和 : 给你一个数列 :a1 , a2 , a3 , a4 , ....... , an 。 以及 k 次询问。 每一次询问给出两个数 L 、R ,要求你回答这个数列的 [ L , R ] 区间内所有数的和是多少 (即 sum( L,R ) ) 解法 : 1. 暴力。每次询问都用一层
阅读全文
摘要: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 =
阅读全文