読者です 読者をやめる 読者になる 読者になる

mu chance or much chance ?

日々の戯れ言

Project Euler 39

Project Euler

Problem39を解き直しました.

  • Integer right triangles

If p is the perimeter of a right angle triangle with integral length sides, {a,b,c}, there are exactly three solutions for p = 120.

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

For which value of p ≤ 1000, is the number of solutions maximised?

https://projecteuler.net/problem=39

問題は「直角三角形の3辺の総和をpをしたとき,3つの自然数で表現できる直角三角形の総数が一番多くなるpの値を求めよ.ただしpは1000以下とする.」.

max = 0
index = 0
for p in 1..1000 do
  count = 0
  for a in 1..p - 2 do
    for b in 1..p - 1 - a do
      c = p - a - b
      count += 1 if c**2 == a**2 + b**2
    end
  end
  if max < count
    max = count
    index = p
  end
end

p index

力技で求めました.