반응형
문제
세 자연수 a, b, c 가 피타고라스 정리 a2 + b2 = c2 를 만족하면 피타고라스 수라고 부릅니다 (여기서 a < b < c ).
예를 들면 32 + 42 = 9 + 16 = 25 = 52이므로 3, 4, 5는 피타고라스 수입니다.
a + b + c = 1000 인 피타고라스 수 a, b, c는 한 가지 뿐입니다. 이 때, a × b × c 는 얼마입니까?
접근방법
1. a와 b는 1부터, c는 1000-a-b로 접근
2. 피타고라스 방정식을 만족하면 for 문을 종료한다.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int c, num = 0;
for (int a = 1; a <= 1000; a++)
{
for (int b = 1; b <= 1000; b++)
if (pow(1000 - a - b, 2) == (pow(a, 2) + pow(b, 2)))
{
c = 1000 - a - b;
num = a * b * c;
//cout <<"a : " << a << " , b : " << b << " , c : " << c << endl;
}
if (num != 0)
break;
}
cout << "Answer is : " << num << endl;
return 0;
}
참고
https://github.com/mannlim/ProjectEuler
반응형
'알고리즘 문제 & 프로그래밍 > C++' 카테고리의 다른 글
[C++]프로젝트 오일러 11번 문제&풀이 (20×20 격자에서 연속된 네 수의 곱 중 최댓값) (0) | 2020.11.22 |
---|---|
[C++]프로젝트 오일러 10번 문제&풀이 (이백만 이하 소수의 합) (0) | 2020.11.20 |
[C++]프로젝트 오일러 8번 문제&풀이 (1000자리 수 안에서 이어지는 5개 숫자의 곱 중 최댓값은?) (0) | 2020.11.19 |
[C++]프로젝트 오일러 6번 문제&풀이 (1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는?) (0) | 2020.11.19 |
[C++]프로젝트 오일러 5번 문제&풀이 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수) (0) | 2020.11.19 |
댓글