トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
Problem229 平方数による4通りの表し方
問題
3600 は特殊な数字である, というのは以下の特徴があるからである.
●3600 = 48の2乗 + 36の2乗
●3600 = 20の2乗 + 2×40の2乗
●3600 = 30の2乗 + 3×30の2乗
●3600 = 45の2乗 + 7×15の2乗
同様に,
82201 = 99の2乗 + 280の2乗
= 287の2乗 + 2×54の2乗
= 283の2乗 + 3×54の2乗
= 197の2乗 + 7×84の2乗
である.
1747年, オイラーはどのような数が平方数の和で表せるか証明した.
我々は以下のような4通りの式で表せる数nに着目する.
●n = a(1)の2乗 + b(1)の2乗
●n = a(2)の2乗 + 2×(b(2)の2乗)
●n = a(3)の2乗 + 3×(b(3)の2乗)
●n = a(7)の2乗 + 7×(b(7)の2乗)
a(K),b(K)は正整数とする.
100万以下ではこれを満たす整数は75373個ある.
2億以下ではいくつあるか.
ソース
実行結果
解説