トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem66 ディオファントス方程式

問題

次の形式の, 2次のディオファントス方程式(ペル方程式)を考えよう:

Xの2乗 - D * (Yの2乗) = 1
(X,Yは自然数)

たとえば D=13 のとき, Xを最小にする解は (649の2乗) - 13*(180の2乗) = 1 である.
D が平方数(square)のとき, 正整数のなかに解は存在しないと考えられる.

D = {2, 3, 5, 6, 7} に対して Xを最小にする解は次のようになる:
(3の2乗) - 2*(2の2乗) = 1
(2の2乗) - 3*(1の2乗) = 1
(9の2乗) - 5*(4の2乗) = 1
(5の2乗) - 6*(2の2乗) = 1
(8の2乗) - 7*(3の2乗) = 1

したがって, D <= 7 に対して Xを最小にする解を考えると, D=5 のとき Xは最大である.
D <= 1000 に対する, Xを最小にする解で, Xが最大になるような D の値を見つけよ.


ソース



実行結果



解説