PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 39 / 整数の直角三角形

辺の長さが {a,b,c} と整数の3つ組である直角三角形を考え,その周囲の長さを p とする。p = 120のときには3つの解が存在する。

{20,48,52}, {24,45,51}, {30,40,50}

p ≤ 1000 のとき解の数が最大になる p はいくつか?

Problem 39 - Project Euler


ピタゴラス数は問題9でも扱いました。p=120 の例は方程式の整数解として求められます。

各 p に対する解の個数のリストを作って,その最大値を求めます。a, b, c の偶奇に注目すると p が偶数であることがわかるので p=2q としている他は頭を使わない解法です。結果は16秒。ピタゴラス数の一般形を使うまでもなく終わりました。

ついでに Histogram[myList] で個数の分布を見てみましょう。

f:id:variee:20170320115329p:plain

500個調べたうちの300個は0でした。

variee.hatenadiary.com