직사각형 만들기

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

요약
주어진 N에 대해, 타일 수 T의 정렬되지 않은 인수 쌍 개수(가로가 세로 이하인 직사각형 수)가 정확히 N이 되는 가장 작은 T를 구한다.
난이도

보통10점 중 7점

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

문제

강산이는 단위 정사각형 타일(한 변의 길이가 11인 정사각형)을 가지고 있고, 가장 좋아하는 도형은 직사각형이다. 그는 타일을 하나도 남기지 않고 모두 사용하여 빈틈없는 직사각형을 만들려고 한다. 타일의 개수가 정해졌을 때, 서로 다른 직사각형을 몇 종류나 만들 수 있을까? 회전하여 같아지는 두 직사각형은 같은 것으로 보므로, a×ba \times b 직사각형과 b×ab \times a 직사각형은 같은 종류이며, 정사각형도 직사각형에 포함된다.

예를 들어 타일이 66개이면 1×61 \times 6과 2×32 \times 3의 두 종류를, 44개이면 1×41 \times 4와 2×22 \times 2의 두 종류를 만들 수 있다.

NN이 주어질 때, 모든 타일을 사용하여 만들 수 있는 서로 다른 직사각형이 정확히 NN종류가 되도록 하는 단위 정사각형 타일 개수의 최솟값을 구하여라. 예를 들어 N=2N = 2이면 답은 44이다.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 각 줄에 정수 NN (1≤N≤751 \le N \le 75)이 하나씩 주어진다. 마지막 줄에는 00이 하나 주어지며, 이 줄은 입력의 끝을 나타내고 테스트 케이스가 아니다.

출력

각 테스트 케이스마다 한 줄에, 모든 타일을 사용하여 만들 수 있는 서로 다른 직사각형이 정확히 NN종류(더 많지도 적지도 않게)가 되도록 하는 단위 정사각형 타일 개수의 최솟값을 출력한다. 답은 항상 101810^{18}을 넘지 않는다.

예제2

  1. 예제 1

    입력
    2
    16
    19
    0
    
    예상 출력
    4
    840
    786432
    
  2. 예제 2

    입력
    1
    2
    3
    4
    5
    0
    
    예상 출력
    1
    4
    12
    24
    36