이상한 섞기 연산
시간 제한1초메모리 제한1024 MB
길이 n의 수열에서 k를 1부터 n까지 차례로 B_k와 B_l을 맞바꾼 뒤, 값 1이 놓인 위치를 구합니다.
문제
인덱스가 부터 시작하는 길이 의 수열 가 있으며, 초기에 모든 인덱스 에 대해 입니다. 흐즈로는 이 수열에 수행할 수 있는 매우 이상하고 신기한 연산을 생각해 냈습니다. 연산은 다음과 같습니다.
- 양의 정수 가 주어지면, 의 약수인 가장 큰 의 거듭제곱수 을 찾습니다. 이라면 와 을 서로 교환합니다. 이 동작을 -교환이라고 합니다.
- 에 대해 -교환을 순서대로 수행합니다.
흐즈로는 이 연산을 이상한 섞기 연산이라고 부르기로 했습니다. 수열 의 길이 이 주어지면, 에 이상한 섞기 연산을 수행한 뒤 원소 이 있는 인덱스를 출력하세요. 즉, 연산이 끝난 후 이 되는 인덱스 를 찾아야 합니다.
입력
첫 번째 줄에 테스트 케이스의 개수 가 주어집니다. ()
그다음 줄부터 총 개의 줄에 각각 의 길이를 나타내는 정수 이 한 줄에 하나씩 주어집니다. ()
출력
각 테스트 케이스에 대해, 길이가 인 수열 에 이상한 섞기 연산을 수행한 뒤 원소 이 있는 인덱스 를 별도의 줄에 출력하세요.
힌트
본 문제에서 의 거듭제곱수는 꼴로 표현했을 때 가 음이 아닌 정수가 되는 수로 정의됩니다.