[NOIP2017] 小凱的疑惑 - 數論,gcd
阿新 • • 發佈:2020-09-12
Description
給定兩個互質的整數,問用這兩個整數的倍和無法表示的整數中的最大值是多少。
Solution
這題當年考場上就是找規律的,也一直沒有細究證明。答案當然是人盡皆知的 \(ab-a-b\)。
即要證明 \((p,q)=1\) 時使得 \(px+qy=n\) 無非負整數解的最大正整數為 \(pq-p-q\)。
首先證明 \(ab-a-b\) 不能被表示。
假設存在 \(x,y\) 使得 \(px+qy=pq-p-q\),那麼 \(p(x+1)+q(y+1)=pq\)。
變形得到 \(p(q-x-1)=q(y+1)\),於是有 \(p|q(y+1)\),而 \((p,q)=1\)
設 \(y+1=pi,x+1=qj\),則 \(pqi+pqj=pq\) 即 \(i+j=1\),而 \(i \ge 1, j \ge 1\),矛盾。
下面證明任意 \(ab-a-b+t, t\ge 1\) 都可以被表示為 \(ax+by\)。
設 \(au+bv=t\),則其有特解 \(u_0 \ge 0, v_0 \in [-a+1,0]\)。
於是 \(ab-a-b+t=ab-a-b+au_0+bv_0=(u_0-1)a+(v_0+a-1)b\),證畢。
#include <bits/stdc++.h> using namespace std; #define int long long int a, b; signed main() { ios::sync_with_stdio(false); cin >> a >> b; cout << a * b - a - b << endl; }