만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

피타고라스 세 쌍 세기

면접 대비

시간 제한2초메모리 제한1024 MB

요약
정수 n이 빗변이거나 한 변인 피타고라스 세 쌍을 원시 세 쌍과 비원시 세 쌍으로 나누어 셉니다.
난이도

보통10점 중 4점

유형
정수론, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

피타고라스 세 쌍은 양의 정수 a, b, c의 집합으로, a2+b2=c2a^2 + b^2 = c^2을 만족한다.

a, b, c가 공약수를 가지지 않으면 원시 피타고라스 세 쌍(PPT)이다.

양의 정수 n을 입력받아 다음 네 가지 값을 세는 프로그램을 작성한다.

  1. n이 빗변(c)인 서로 다른 PPT의 개수
  2. n이 빗변(c)인 원시가 아닌 피타고라스 세 쌍의 개수
  3. n이 변(a 또는 b) 중 하나인 서로 다른 PPT의 개수
  4. n이 변(a 또는 b) 중 하나인 원시가 아닌 피타고라스 세 쌍의 개수

a, b, c와 b, a, c는 같은 것으로 보아 한 번만 센다. 원시가 아닌 피타고라스 세 쌍은 PPT가 아닌 피타고라스 세 쌍이다.

n = 65인 경우 각 항목의 값은 다음과 같다.

  1. 33, 56, 65; 63, 16, 65
  2. 39, 52, 65; 25, 60, 65
  3. 65, 72, 97; 65, 2112, 2113
  4. 65, 420, 425; 65, 156, 169

입력

한 줄에 음이 아닌 10진수 정수 n이 하나 주어진다. (3 ≤ n ≤ 2500)

출력

한 줄에 10진수 정수 네 개를 출력한다.

첫 번째는 n이 빗변(c)인 서로 다른 PPT의 개수이다.

두 번째는 n이 빗변(c)인 원시가 아닌 피타고라스 세 쌍의 개수이다.

세 번째는 n이 변(a 또는 b) 중 하나인 서로 다른 PPT의 개수이다.

네 번째는 n이 변(a 또는 b) 중 하나인 원시가 아닌 피타고라스 세 쌍의 개수이다.

예제3

  1. 예제 1

    입력
    65
    
    예상 출력
    2 2 2 2
    
  2. 예제 2

    입력
    64
    
    예상 출력
    0 0 1 4
    
  3. 예제 3

    입력
    2023
    
    예상 출력
    0 2 2 5