ax ≡ b(mod n)
- 两个推论
方程 ax ≡ b(mod n)关于 x有解,当且仅当 gcd(a,n) | b。
-
方程 ax ≡ b(mod n)有 d个不同解,其中d = gcd(a,n) , 或者无解。
-
推论二的证明:
- 两个定理
方程 ax ≡ b(mod n)最小整数解x1 最大整数解x2。
- 方程有解时 d个解的公式,上面证明提到过。
应用于题目
- 题意与分析:
- 注意点:
- 代码
#include<cstdio>
#define ll long long
ll d;
ll x,y;
void exgcd(ll a,ll b){
if(b==0){
d=a;
x=1;
y=0;
return ;
}
exgcd(b,a%b);
ll t=x;
x=y;
y=t-a/b*y;
}
void solution(ll a,ll b,ll n){
if(b==0){printf("0\n");return;}
exgcd(a,n);
if(b%d){printf("FOREVER\n");return;}
ll f=n/d;
x=x*(b/d);
ll X=(x%f+f)%f;
printf("%lld\n",X);
}
int main(){
ll A,B,C,k;
while(scanf("%llu%llu%llu%llu",&A,&B,&C,&k),(A+B+C+k)){
solution(C,B-A,(ll)1<<k);
}
return 0;
}
- 总结:有详细证明的留言。