同余
如果整数a和整数b除以正整数m的余数相等,叫做a,b模m同余,记作a≡b(mod m)
当然有两种理解的方法
1.两个数除以m的余数相同
2.两个数的差是m的倍数
关于同余有很多的性质:
1.自反性;2.对称性;3.传递性;4.同价性;5.同乘性;6.同幂性;7.同余不满足同除性
费马小定理
如果p是质数,那么对于任意一个整数a ap≡a(mod p)
欧拉定理
如果一个正整数a,n互质,则a欧拉函数(n)≡1(mod n)
拓展欧几里得算法
bezout定理,就是说,对于一个存在两个数a,b存在一对整数x,y,满足ax+by=gcd(a,b)
这就是exgcd,拓展欧几里得算法,是用来求解线性同余方程的
gcd(a,b)=gcd(b,a%b)那么存在一对整数x,y,满足bx+a%by=gcd(b,a%b),然后通过一系列的分解化简,就能求出来ay-b(x-a/b*y)=gcd(a,b)
给定一个方程Ax+By=k
给出A B k,求出x和y,使得满足方程
其实就是上面所提到的公式
ay-b(x-a/by) = 然后令x_=y,y_=x-a/by,那么 ax_+by_=gcd(a,b)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
int exgcd(