피타고라스의 역습

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

요약
자연수 A가 주어질 때, A, B와 빗변 C가 모두 자연수인 직각삼각형을 이루는 B > A의 개수를 센다.
난이도

보통10점 중 7점

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

문제

피타고라스의 정리는 직각삼각형의 세 변 사이의 관계를 나타낸다. 빗변의 길이를 CC, 나머지 두 변의 길이를 AA, BB라고 하면 다음이 성립한다.

A2+B2=C2A^2 + B^2 = C^2

세 변의 길이가 모두 자연수인 직각삼각형 중 가장 잘 알려진 것은 세 변이 33, 44, 55인 삼각형이다. 예를 들어 A=12A = 12일 때에는 이러한 직각삼각형을 정확히 두 개 만들 수 있다.

자연수 AA가 주어질 때, B>AB > A이면서 빗변의 길이 CC가 자연수가 되는 직각삼각형을 이루는 자연수 BB는 몇 개인지 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 자연수 AA (2≤A<2202 \le A < 2^{20}) 하나로 주어진다. 입력의 마지막 줄에는 00이 하나 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다, 주어진 AA에 대해 B>AB > A이면서 빗변의 길이가 자연수인 직각삼각형을 이루는 BB의 개수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3
    12
    2
    1048574
    1048575
    0
    
    예상 출력
    1
    2
    0
    1
    175