文章目录 1. 最大公约数2. 最小公倍数3. 模取幂 1. 最大公约数 欧几里得算法(辗转相除法)求最大公约数(Greatest Common Divisor,GCD)的递归定理:对任意非负整数a和任意正整数b g c
一个集训的初中生啊,学大佬的数论。。。 整除与带余除法 1、已知: 7^82 + 8161能被57整除,求证:783 +81^63也能被57整除。 嗯, 证明:7^83 + 81^63 = 7 ( 7^82 + 81^61 )-7 × 8^161 + 8^163 = 7 ( 7^82 + 8^161 ) + 8^161 × 57 ∵7^82 + 8^161和57都能被57整除 这其实还好。 最大公
数论 数论一级目录二级目录三级目录 试除法判定质数分解质因数筛质数(筛除1~n中有多少个质数)素数筛总结: 试除法求约数排列 快速幂逆元组合数范围小的(2000)范围稍大( 1
1 什么是逆元 如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。 2 逆元求法①拓展欧几里得(洛谷P1082) 【算法原理】 观察ax≡1 (mod p),变形为a*x+p*y=1,就可以用扩展欧几里得算法求x了,同时这里也说明了a和p只有在互素的情况下才存在逆元。 【适用范围】 只要
点此看题面 给定一个大小为\(n\)的整数集\(A\),一个大小为\(m\)的整数集\(B\)以及三个数\(P,Q,T\)。 求\(\sum_{i=0}^{T-1}[(i\% P\in A)\wedge(i\% Q\in B)]\)。 \(n,m\le10^6\) 数论+建图 考虑枚举\(a_i\in A\),去计算有多少个\((kP+a_i)\% Q\in B\)。 发现\(P\)固定,每次\(k\)增
题目的意思就是,给你一个S(0<=s<=3000),m(2<=m<=10000),将S拆分成若干个数a1 a2 ----an,求着若干个数中满足lcm(a1,a2,a3—,an)的最大值,求最小公倍数,结果对m取模,很容易联想到应该尽可能让a1 a2----an互质,所以首先应该预处理出1到3000以内的所有素数,然后对于将每一个素数进行一次
目录 莫比乌斯函数 莫比乌斯反演 莫比乌斯函数 首先,我们先介绍一下莫比乌斯函数 \(\mu(x)\) 设 \(x\) 质因数分解式为:\(x = \prod_{i=1}^k p_i^{\alpha_i}\) \[\mu(x)= \begin{cases} 0& \exists \alpha_i \geqslant 2 \\ (-1)^k& \forall \alpha_i = 1 \end{cases}\]记 \(s(n)
传送门: https://www.luogu.com.cn/problem/P3327 https://www.acwing.com/problem/content/1360/ 莫比乌斯反演 + 整除分块 分析 首先,我们给出一个结论: \[d(ij) = \sum_{x|i} \sum_{y|j} [(x, y) = 1] \]证明: 设 \(i\) 的分解式为 \(i = \prod p_k^{\alpha_k}\) ,类似地,\(j = \prod
赛时时间安排 7:10-7:30 看题,暂时没想正解,感觉今天暴力分真多啊 7:30-8:30 想了会儿T1,感觉可能是整除分块,但不太会维护,决定先码暴力,打的过程中尽量缩写常数,最后水到了据说是给码正解但被卡常的选手准备的80pts。 8:30-9:30 想了会儿,发现了整个串有循环节,这个循环节长度似乎小于n,于
其实主要是想发一下线性筛的板子,包括线性筛质数,约数个数,欧拉函数和莫比乌斯函数。 有些也会有一点简单的证明。 线性筛质数就不说啦。 然后加一个筛欧拉函数。 当\(i\)为质数的时候,自然\(\varphi(i) = i - 1\)。 令\(n = mp\), 当\(p \nmid m\)的时候,有\(\varphi(n) = \varphi(m)
数论学习笔记 记录的侧重点为一些个人认为需要证明的性质定理,所以概念可能不成体系且跳跃 P:质数集 取模 取模的定义: \(a \bmod b = a - \lfloor \frac{a}{b} \rfloor b\) 但是注意c++的%的除法并不是向下取整,而是向零取整,这就会导致负数取模完还是负数,如: -6%5=-6-(-6/5)*5=-1
欧拉计划 P429 Sum of squares of unitary divisors(数论) 传送门:https://projecteuler.net/problem=429 题目大意: 定义一个数 n n n 的因数 d
矩阵乘法 两矩阵相乘,左矩阵列数必须等于右矩阵行数 struct matrix { int n, m; // 行, 列 int c[N][N]; }; matrix mul(matrix a, matrix b) { matrix res; res.n = a.n; res.m = b.m memeset(res, 0, sizeof res); for(int i = 0;
数论部分 自bilibili n多视频 https://www.bilibili.com/video/BV1Zf4y1r7qE?from=search&seid=9993155426548406857 以及https://oi-wiki.org/ 学习 模运算 模运算 常用于结果对某数取模 (a+b)mod m = ((a mod m)+(b mod m)) mod m; (a-b)mod m = ((a mod m)-(b mod m)) mod m;
数论函数相关的博客整理 http://blog.leanote.com/post/rockdu/TX20 理解快速沃尔什变换/快速莫比乌斯变换(FWT|FMT) (已完结) https://blog.csdn.net/startaidou/article/details/90900258 莫比乌斯变换总结 https://blog.csdn.net/Ivanzn/article/details/88641049 数论函
模板 质数 / 素数唯一分解定理(算术基本定理) 试除法判定分解质因数筛法埃氏筛欧拉筛(线性筛) 因数 / 约数试除法求解约数个数约数之和约数之积最大公约数欧几里得算法(辗转相除法)其他方法 (stein算法) 欧拉函数欧拉定理欧拉降幂快速幂快速幂求解逆元 扩展gcd线性同余方
定义 对于任意两整数 a , b a,b a,b,若 g c d
1. 组合数取模 求 \(\dbinom nm\bmod p\) 1. \(n,m\le 200\),\(p\) 任意 递推 2. \(n,m\le 10^6\),\(p\ge 10^9\) 素数 预处理 \(n!\),\(m!^{-1}\),\((n-m)!^{-1}\) 即可 . 3. \(n,m\le 10^6\),\(p\le 2000\) 素数 注意到 \(n\) 可能是 \(p\) 的倍数,故逆元可能不存在 . 引入 Lucas 定
数论函数相关 首先是说了欧拉筛(线性筛) 先贴钟长者的Code 1~n 所有质数找出来 not_prime[i] 代表 i 有没有被筛过 for (int a=2;a<=n;a++) { if (not_prime[a] == false) plist[++pcnt] = a; for (int b=1;b<=pcnt;b++) { int x = a * plist[b]; if (x>n) break; not_p
目录1. 判断素数(素性测试)1. $O(\sqrt n)$ 试除2. Miller-Rabin 素性测试 1. 判断素数(素性测试) 1. \(O(\sqrt n)\) 试除 bool isprime(int n) { if (n<2) return false; for (int i=2;i*i<=n;i++) if (!(n%i)) return false; return true; } 2. Miller-Rabin 素性测试 Theor
目录I. 基础知识1. 带余除法(小学)1. 定义2. 性质2. 最大公约数(gcd)/ 最小公倍数(lcm)II. 矩阵及其应用1. 定义 I. 基础知识 1. 带余除法(小学) 1. 定义 对于整数 \(a,b\),若有 \(q,r\) 满足: \[a=bq+r \]其中 \(0\le r<b\),那么 \(r\) 称作 \(a\) 模 \(b\) 的 余数,记作 \(a\bmod b\) . 顺
洛谷 P3811 【模板】乘法逆元题目描述给定n,p求1~n中所有整数在模p意义下的乘法逆元。输入输出格式输入格式:一行n,p 输出格式:n行,第i行表示i在模p意义下的逆元。输入输出样例输入样例#1: 10 13输出样例#1: 1 7 9 10 8 11 2 5 3 4说明1≤n≤3×106,n<p<20000528 输入保证p为质数。S
同余 设n是给定的正整数,若整数a、b满足n|(a−b),则称a和b模
exgcd 求解形如ax+by=c的方程的一组解 则: \[x=x_0+\frac{b}{(a,b)}t,t\in Z \]void exgcd(ll a,ll b) { if(!b) { x=1,y=0; return; } ll k=a/b; exgcd(b,a-k*b); ll t=x; x=y,y=t-k*y; } 同余方程 合并方程(见小本本) 模板 ybtoj H. 中国剩余定理 #include<bits/stdc++.h
前言: 欢迎光临大千小熊的博客,我是一只又会MMD又会C++的正派熊,B站和CSDN同步更新,欢迎关注。 幂运算含义: 形如 x n x^n xn 指数是x,底数是x的