同余方程
同余方程是一个数学方程式。该方程式的内容为:对于一组整数Z,Z里的每一个数都除以同一个数m,得到的余数可以为0,1,2,...m-1,共m种。我们就以余数的大小作为标准将Z分为m类。每一类都有相同的余数。
中文名
同余方程
外文名
Congruence equation
特 点
极具有思想方法意义
属 性
数学名词
解 法
孙子定理
应用学科
数学术语
编辑
定义1:设
是整系数多项式,称
是关于未知数
的模
的同余方程,简称为模
的同余方程。
若
,则称
为
次同余方程。
定义2:设
是整数,当
时,
成立,则称
是同余方程
的解。凡对于模
同余的解,被视为同一个解。同余方程
的解数是指它的关于模
互不相余的所有解的个数,也即在模
的一个完全剩余系中的解的个数。
由定义2,同余方程
的解数不超过
基本原理
编辑
定理:下面的结论成立:
(1)设
是整系数多项式,则同余方程
与
等价;
(2)设
是整数,
,则同余方程
与
等价;
(3)设
是素数,
,
与
都是整系数多项式,又设
是同余方程
的解,则
必是同余方程
的解。
证明:(1)若
,则
成立,反之,若
,则
成立;
(2)若
,则
成立,反之,若
,则由
得
成立;
(3)若
,则由
是素数得
或
。证毕。 [1]
#include<bits/stdc++.h>
using namespace std;
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int r=exgcd(b,a%b,x,y);
int t=x;
x=y;
y=t-a/b*x;
return r;
}
int main()
{
int a,b,x,y;
cin>>a>>b;
exgcd(a,b,x,y);
x=(x+b)%b;
cout<<x<<endl;
return 0;
}