소수가 될 때까지 쪼개기

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

양의 정수로 이루어진 다중집합 KK에 대해 대량 분해 연산을 정의한다. 대량 분해는 KK의 모든 원소를 동시에 처리한다. 원소 kk가 소수면 그대로 둔다. 소수가 아니면 1<d<k1 < d < kkk의 약수 dd를 하나 골라 kkddk/dk/d 두 수로 바꾼다. 조건을 만족하는 약수는 모두 같은 확률로 뽑히고, 원소마다 독립적으로 뽑는다.

예를 들어 K={2,10,12,12}K = \{2, 10, 12, 12\}를 보자. 2는 소수라 그대로 남는다. 10은 1과 10 사이의 약수가 2와 5뿐이라 항상 {2,5}\{2, 5\}가 된다. 12는 약수 2, 3, 4, 6 중 하나를 각각 확률 1/41/4로 고르므로 확률 1/21/2씩으로 {2,6}\{2, 6\} 또는 {3,4}\{3, 4\}가 된다. 그래서 첫 번째 대량 분해의 결과는 확률 0.250.25{2,2,3,3,4,4,5}\{2, 2, 3, 3, 4, 4, 5\}, 확률 0.50.5{2,2,2,3,4,5,6}\{2, 2, 2, 3, 4, 5, 6\}, 확률 0.250.25{2,2,2,2,5,6,6}\{2, 2, 2, 2, 5, 6, 6\}이다. 마지막 결과에 두 번째 대량 분해를 하면 {2,2,2,2,2,2,3,3,5}\{2, 2, 2, 2, 2, 2, 3, 3, 5\} 하나만 나온다.

원소가 NN 하나뿐인 다중집합 {N}\{N\}에서 시작해 모든 원소가 소수가 될 때까지 대량 분해를 반복한다. 필요한 대량 분해 횟수의 기댓값을 구하여라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. (1T1041 \le T \le 10^4)

이어지는 TT개의 줄에 각 테스트 케이스의 시작 값 NN이 한 줄에 하나씩 주어진다. (2N10102 \le N \le 10^{10})

출력

각 테스트 케이스마다 대량 분해 횟수의 기댓값을 한 줄에 하나씩 출력한다. 값은 반올림해서 소수점 아래 여섯 자리까지 정확히 적는다. 답이 2이면 2.000000으로 출력한다.