algorithm,

알고리즘 풀이

FreeVue FreeVue Follow Apr 28, 2019 · 1 min read
알고리즘 풀이
Share this

문제

세 자연수 a, b, c 가 피타고라스 정리 a2 + b2 = c2 를 만족하면 피타고라스 수라고 부릅니다.
(여기서 a < b < c )

a + b + c = n 인 피타고라스 수 a, b, c의 곱을 구하시오.
(단, 위 조건에 만족하지 않는 n은 0으로 출력하시오.)

input = 12
output = 60 // 3 * 4 * 5 = 60

풀이

const output = (input) => {
  let out = 0

  for (let b = 1; b < input; b++) {
    for (let a = 1; a < b; a++) {
      const modify1 = Math.pow(a, 2) + Math.pow(b, 2)
      const modify2 = Math.pow(input - a - b, 2)

      if (modify1 === modify2) {
        out = a * b * (input - a - b)

        break
      }
    }
  }

  return out
}

output(12) // 60
output(20) // 0
output(1000) // 31875000

구조

결과 이미지 1

[출처: http://euler.synap.co.kr/prob_detail.php?id=9]