1. 程式人生 > >NOIP2017小凱的疑惑(提高D1T1)

NOIP2017小凱的疑惑(提高D1T1)

題面傳送門

小學奧數題&&結論題

ans=abab

給大家一個不太嚴謹的證明:

用到一個引理:不定方程ax+by=c(a,b,c>0)一定有一組解(x1,y1)滿足a<y10x1>0

先證引理

首先,顯然x,y中至少有一個非負(都是負數就不可能等於c

然後假設有一組特解(x0,y0),那麼通解為(x0+bt,y0at)(tZ)

所以有一組特解(x1,y1)滿足a<y10

因為y10,所以x1>0

引理得證

再證原命題

a=1b=1時命題成立,下面考慮a>1,b>1

分兩步:

1.證a
babax+by

假設abab=ax+by(x0,y0)

那麼ab=a(x+1)+b(y+1)

m=x+1,n=y+1(m1,n1),則ab=am+bn

所以a|bn

又因為gcd(a,b)=1,所以a|n,不妨設n=an

上面的式子變為ab=am+abn,推出am=(1n)ab0,矛盾!

原命題得證

2.證abab+t(t1)可以被分解為ax+by的形式

構造不定方程au+bv=t,由引理得它有一組特解滿足a<v00u0>0

abab+t=abab+au0+bv0=(u01)a+(v0+a1)b

因為u010,v0+a1

0,所以原命題得證

所以,abab是最大的不能被表示為ax+by的整數

code

#include<iostream>
using namespace std;
unsigned long long a,b;
int main()
{
    cin>>a>>b;
    cout<<a*b-a-b;
    return 0;
}