순열의 최대 위수
시간 제한3초메모리 제한512 MB
각 n에 대해 부분들의 최소공배수가 최대가 되는 분할을 구한 뒤, 그 순환 길이를 가지는 순열 중 사전순으로 가장 앞선 것을 출력한다.
문제
개의 원소로 이루어진 순열은 전단사 함수 이다.
순열 의 위수(order) 는 다음을 만족하는 가장 작은 정수 이다. 모든 에 대해
즉 를 자기 자신과 번 합성하면 항등함수가 된다. 예를 들어 일 때 순열 의 위수는 인데, 모든 에 대해 이기 때문이다.
주어진 에 대해, 위수가 가능한 한 큰 순열들을 생각하자. 예를 들어 개 원소의 순열 중 최대 위수는 이며, 위수가 인 순열의 한 예는 이다.
최대 위수를 가지는 개 원소의 순열들 중에서 사전순으로 가장 앞서는(가장 작은) 것을 찾고자 한다. 엄밀히 말해, 순열 가 순열 보다 앞선다는 것은 어떤 첨자 가 존재하여 모든 에 대해 이고 인 경우를 뜻한다. 일 때 위수가 인 순열 중 사전순으로 가장 작은 것은 이다.
여러 개의 값 를 입력받아, 각 에 대해 위수가 최대인 개 원소의 순열 중 사전순으로 가장 작은 것을 출력하는 프로그램을 작성하라.
입력
첫째 줄에 정수 가 주어진다 (). 이어지는 개의 줄에는 각각 하나의 정수 가 주어진다 ().
출력
개의 줄을 출력한다. 번째 줄에는 위수가 최대인 개 원소의 순열 중 사전순으로 가장 작은 것, 즉 수열 를 공백 하나로 구분하여 출력한다.