PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 218 / 完全な直角三角形

a=7, b=24, c=25 の直角三角形について考える。この三角形の面積は84であり,完全数6と28で割り切れる。さらに, この三角形は原始(primitive)直角三角形である。つまり,gcd(a,b)=1, gcd(b,c)=1 をみたす。さらに,c は平方数である。

以下の条件をみたす直角三角形を完全(perfect)と呼ぶ。

  • 原始直角三角形である
  • 斜辺が平方数である

以下の条件をみたす直角三角形を超完全(super-perfect)と呼ぶ。

  • 完全な直角三角形である
  • 面積が完全数である6と28の倍数である

c≤10^16 をみたす完全な直角三角形のうち,超完全でないものはいくつあるか。

Problem 218 - PukiWiki


a, b, c は直角三角形の3辺で,互いに素なので次のようにおけます。m と n は互いに素で偶奇が異なります。

a=m^2-n^2,\, b=2mn,\, c=m^2+n^2

c は平方数なので  m^2+n^2=k^2 とおけます。m と n が互いに素であることも考えると,もう一度一般形を導けます。

 m=p^2-q^2,\, n=2pq,\, k=p^2+q^2

p と q は互いに素で偶奇が異なります。
次に直角三角形の面積をSとおいて p, q で表します。

 S=\dfrac{ab}{2}=(m^2-n^2)mn

 =2pq(p+q)(p-q)(p^2-2pq-q^2)(p^2+2pq-q^2)

これが「6と28の倍数」=「84の倍数」となる条件は 3, 4, 7 で割り切れることです。このうち3と4の条件は簡単に処理できます。

  • p と q の偶奇が異なることから 2pq は4の倍数なので,S も4の倍数
  • pq(p+q)(p-q) が3の倍数であることは合同式で簡単に示せます(大学入試でもたまに出題されます)

7の条件は Mathematica でしらみつぶししました。どの場合も S は7で割り切れるので,完全な直角三角形はすべて超完全です。

この問題の答えは「0」。意外な結果になりました。