만드는 중입니다

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

역사적인 돌파구

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

요약
m이 주어질 때, 1부터 n까지 n과 서로소인 정수의 합, 즉 n*phi(n)/2가 m이 되는 n을 찾는다.
난이도

어려움10점 중 8점

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

문제

Rikka는 올해 학부 암호학 강의를 듣는다. 수업에서 최근 새로운 소인수분해 방법이 발견되었고, 이것이 암호학의 역사적인 돌파구로 여겨진다는 내용이 언급되었다. Rikka는 더 단순한 목표를 가진 특정 부류의 수에 대해서도 이에 필적할 만한 알고리즘이 존재하리라고 생각한다.

이제 이런 "소인수분해" 알고리즘을 설계하고 구현해야 한다. 정수 mm이 주어졌을 때, 다음을 만족하는 정수 nn을 출력하라.

m=nφ(n)2=∑1≤i≤n,gcd(i,n)=1i.m = \frac{n \varphi(n)}{2} = \sum\limits_{\begin{array}{c}1 \le i \le n, \\ \mathrm{gcd}(i, n) = 1\end{array}} i \text{.}

이러한 nn이 모든 테스트 케이스에서 존재함은 보장된다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. (1≤T≤511 \le T \le 51)

이어지는 TT개의 줄 중 ii번째 줄에는 정수 mim_i가 하나씩 주어진다. (0<mi<10360 < m_i < 10^{36})

출력

각 테스트 케이스마다 해당하는 mim_i에 대한 정수 nin_i를 출력한다. 모든 테스트 케이스에서 답이 존재함은 보장된다. 가능한 답이 여러 개라면 그중 아무거나 출력해도 된다.

예제1

  1. 예제 1

    입력
    3
    20
    21
    475750381222420656586462245096576000
    
    예상 출력
    10
    7
    1497700821900508526