라그랑주의 네 제곱수 정리

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

요약
입력으로 주어지는 각 수를 1개에서 4개까지의 양의 제곱수 합으로 나타내는 순서 없는 방법의 수를 구합니다.
난이도

보통10점 중 4점

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

문제

모든 양의 정수는 많아야 네 개의 제곱수의 합으로 나타낼 수 있다. 이 사실을 라그랑주의 네 제곱수 정리라고 하며, 조제프루이 라그랑주가 1770년에 증명했다.

우리는 이 정리를 증명하거나 새로운 정리를 발견할 필요는 없다. 대신 nn이 주어졌을 때, nn을 많아야 네 개의 양의 제곱수의 합으로 나타내는 경우의 수를 세려고 한다. 제곱수의 순서만 다른 표현은 같은 것으로 본다. 따라서 32+423^2 + 4^2과 42+324^2 + 3^2은 같은 경우이다.

예를 들어 n=25n = 25일 때 그러한 표현은 12+22+22+421^2 + 2^2 + 2^2 + 4^2, 32+423^2 + 4^2, 525^2의 세 가지이다.

입력

입력은 최대 255255개의 줄로 이루어진다. 각 줄에는 2152^{15}보다 작은 양의 정수가 하나씩 주어진다. 마지막 줄에는 00이 하나 있으며, 이는 입력 데이터가 아니다.

출력

입력으로 주어진 각 nn에 대해, nn을 많아야 네 개의 양의 제곱수의 합으로 나타내는 경우의 수(순서는 구별하지 않는다)를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    1
    25
    2003
    211
    20007
    0
    
    예상 출력
    1
    3
    48
    7
    738
    
  2. 예제 2

    입력
    4
    7
    0
    
    예상 출력
    2
    1
    
  3. 예제 3

    입력
    50
    100
    0
    
    예상 출력
    5
    7