(C언어)프로젝트 오일러(Project Euler)9. a + b + c = 1000 이 되는 피타고라스 수

문제

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

예를 들면 $3^{2} + 4^{2} = 9 + 16 = 25 = 5^{2}$이므로 $3$, $4$, $5$는 피타고라스 수입니다.

$a + b + c = 1000$ 인 피타고라스 수 $a$, $b$, $c$는 한 가지 뿐입니다. 이 때, $a × b × c$ 는 얼마입니까?

코드

#include <stdio.h>


int main(void)
{
    int i, j, k;

    for (i = 1; i < 1000; i++)
    {
        for (j = 2; j < 1000; j++)
        {
            if (i < j)
            {
                k = 1000 - i - j;
                if (i * i + j * j == k * k)
                {
                    printf("%d %d %d\n", i, j, k);
                    printf("%d\n", i * j * k);
                }
            }
        }
    }

    return 0;
}

 

세 자연수를 i, j, k로 놓고, i < j < k 이므로 i는 1, j는 2부터 시작했다. k는 조건을 만족하도록 1000 - i - j로 했다.

피타고라스 공식에 맞으면 세 수를 출력하고, 다음 줄에 세 수를 곱한 값을 출력하도록 했다.

조건을 만족하는 세 수는 200, 375, 425이고, 정답은 31875000이다.