본문 바로가기
알고리즘 문제 & 프로그래밍/C++

[C++]프로젝트 오일러 9번 문제&풀이 (a + b + c = 1000 이 되는 피타고라스 수)

by 달슬 2020. 11. 19.
반응형

문제

세 자연수 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

 

mannlim/ProjectEuler

How to solve Project Euler using by C++. Contribute to mannlim/ProjectEuler development by creating an account on GitHub.

github.com

 

 

반응형

댓글