양의 정수 사이의 거리를 다음과 같이 정의한다. 한 번의 연산은 어떤 수에 소수를 곱하거나, 그 수를 나누어떨어지게 하는 소수로 나누는 것이다. 두 양의 정수 a와 b의 거리 d(a,b)는 a를 b로 바꾸는 데 필요한 최소 연산 횟수이다. 예를 들어 d(69,42)=3이다.
함수 d는 실제로 거리의 성질을 만족한다. 모든 양의 정수 a, b, c에 대하여 다음이 성립한다.
n개의 양의 정수로 이루어진 수열 a1,a2,…,an이 주어진다. 각 ai에 대하여 j=i이면서 d(ai,aj)를 가장 작게 하는 인덱스 j를 구해야 한다.
첫째 줄에 정수 n (2≤n≤100000)이 주어진다. 이어지는 n개의 줄에는 각각 정수 ai (1≤ai≤1000000)가 한 줄에 하나씩 주어진다.
정확히 n개의 줄을 출력하며, 각 줄에 정수 하나를 출력한다. i번째 줄에는 1≤j≤n, j=i이고 d(ai,aj)가 최소가 되는 인덱스 j 중 가장 작은 값을 출력한다. 즉 ai까지의 거리가 최소가 되는 j=i 인덱스들 가운데 가장 작은 인덱스를 출력한다.