Home > Study > C Language > C Example > [ex59] 피타고라스 수

[ex59] 피타고라스 수
Study Language

문제 설명


피타고라스는 각 변의 길이가 a, b, c인 직각삼각형에서 a2+b2=c2가 성립함을 발견하고서 유레카를 외치며 목욕탕을 뛰쳐나왔다. (후에 아르키메데스가 이를 따라 했다는 얘기가 있음)

자연수 n이 주어지면, 1≤a≤b≤c≤n을 만족하면서 a2+b2=c2 또한 성립하는 a, b, c가 얼마나 있는지 계산하는 프로그램을 작성하자. 당연히 a, b, c는 모두 정수여야 한다.

예를 들어, n이 15인 경우 아래와 같은 4가지의 (a, b, c)가 존재한다.
(3, 4, 5), (5, 12, 13), (6, 8, 10), (9, 12, 15)

#include <stdio.h>

int Solve(int n)
{
	//여기서 부터 작성
}
int main(void)
{
	int n;
	scanf("%d", &n);

	printf("%d\n", Solve(n));

	return 0;
}

입력 설명


첫 번째 줄에 300 이하의 자연수 n이 입력된다.

출력 설명


첫 번째 줄에 가능한 피타고라스 수의 개수를 출력한다

입력 예시


15

출력 예시


4

정답 코드


#include <stdio.h>

int Solve(int n)
{
	int cnt = 0;
	for (int c = 2; c <= n; c++)
	{
		for (int b = 1; b < c; b++)
		{
			for (int a = 1; a <= b; a++)
			{
				if (a*a + b * b == c * c) cnt++;
			}
		}
	}
	return cnt;
}
int main(void)
{
	int n;
	scanf("%d", &n);

	printf("%d\n", Solve(n));

	return 0;
}

메모


printf 내부의 \n 습관화 필요