@leo8年前
问题
\(a,b为正整数,若\frac{a^2+b^2}{ab+1}为整数,求证其也为平方数。\)
解答
\(不妨设a\geq b>0,令k=\frac{a^2+b^2}{ab+1},则有a^2-bka+b^2-k=0\)
\(构造方程\)
\(x^2-kbx+b^2-k=0\)
\(显然a为方程的解。考虑方程的另一个解。\)
(1) 若\(a=b\):容易求得\(a=b=1, k=1\)。
(2) 若\(a>b\):
\(a+x_2=kb为整数,则x_2为整数。令x_2=a’\)
\(先证a’非负。若a’\leq-1,\)
\(则{a’}^2+b^2=k(a’b+1)\leq k(1-b)\leq0,与b是正整数矛盾。\)
\(因而a’非负。\)
\(由于aa’=b^2-k,则\)
\(a’=\frac{b^2-k}{a}<\frac{b^2}{a}<\frac{ab}{a}=b\\
令a_1=b,b_1=a’,则有\\
b_1^2-ka_1b_1+a_1^2-k=0\\
即k=\frac{a^2+b^2}{ab+1}=\frac{a_1^2+b_1^2}{a_1b_1+1}=\cdots\\
而a>b>b_1>b_2>\cdots>b_n\geq 0\\
由于b_n有下界且非负,必有最后一个b_n=0\\
此时k=a^2为平方数。\)
证毕。
编程可求1000以下的\(a,b\)
In [5]: for a in range(1, 1001):
…: for b in range(a, 1001):
…: k = (a*a + b*b)/(a*b + 1)
…: if k == int(k):
…: print(f'{a=}, {b=}, {k=}’)
…:
a=1, b=1, k=1.0
a=2, b=8, k=4.0
a=3, b=27, k=9.0
a=4, b=64, k=16.0
a=5, b=125, k=25.0
a=6, b=216, k=36.0
a=7, b=343, k=49.0
a=8, b=30, k=4.0
a=8, b=512, k=64.0
a=9, b=729, k=81.0
a=10, b=1000, k=100.0
a=27, b=240, k=9.0
a=30, b=112, k=4.0
a=112, b=418, k=4.0
