피타고라스 세 쌍 세기
면접 대비시간 제한2초메모리 제한1024 MB
정수 n이 빗변이거나 한 변인 피타고라스 세 쌍을 원시 세 쌍과 비원시 세 쌍으로 나누어 셉니다.
문제
피타고라스 세 쌍은 양의 정수 a, b, c의 집합으로, 을 만족한다.
a, b, c가 공약수를 가지지 않으면 원시 피타고라스 세 쌍(PPT)이다.
양의 정수 n을 입력받아 다음 네 가지 값을 세는 프로그램을 작성한다.
- n이 빗변(c)인 서로 다른 PPT의 개수
- n이 빗변(c)인 원시가 아닌 피타고라스 세 쌍의 개수
- n이 변(a 또는 b) 중 하나인 서로 다른 PPT의 개수
- n이 변(a 또는 b) 중 하나인 원시가 아닌 피타고라스 세 쌍의 개수
a, b, c와 b, a, c는 같은 것으로 보아 한 번만 센다. 원시가 아닌 피타고라스 세 쌍은 PPT가 아닌 피타고라스 세 쌍이다.
n = 65인 경우 각 항목의 값은 다음과 같다.
- 33, 56, 65; 63, 16, 65
- 39, 52, 65; 25, 60, 65
- 65, 72, 97; 65, 2112, 2113
- 65, 420, 425; 65, 156, 169
입력
한 줄에 음이 아닌 10진수 정수 n이 하나 주어진다. (3 ≤ n ≤ 2500)
출력
한 줄에 10진수 정수 네 개를 출력한다.
첫 번째는 n이 빗변(c)인 서로 다른 PPT의 개수이다.
두 번째는 n이 빗변(c)인 원시가 아닌 피타고라스 세 쌍의 개수이다.
세 번째는 n이 변(a 또는 b) 중 하나인 서로 다른 PPT의 개수이다.
네 번째는 n이 변(a 또는 b) 중 하나인 원시가 아닌 피타고라스 세 쌍의 개수이다.