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; }
- 总结:有详细证明的留言。