Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int [] arr= new int [n];
for(int i = 0; i < n; i++) {
arr[i] = scan.nextInt();
}
int m = 2;
//나누어줄 변수
int temp = 0;
//나눈 나머지가 임시로 저장될 변수
int count = 0;
//같은 값으로 나누어지는 변수가 배열에 저장될 때 마다
//배열의 위치를 지정해주기 위해 1씩 더해질 변수
int [] marr = new int [arr[0]];
//같은 값으로 나누어지는 m의 값이 저장될 변수
boolean flag = false;
//같은 값으로 나누어지는지 체크할 변수
while(arr[0] > m) {
temp = arr[0] % m;
//주어진 가장 작은 수에 m을 나눈 나머지를 저장
loop : for(int i = 1; i < n; i++) {
if(arr[i] % m != temp) {
flag = false;
break loop;
//temp와 같지 않으므로 루프 탈출
}else {
flag = true;
}
}
//루프 마무리
if(flag == true) {
marr[count] = m;
count ++;
}
//루프가 끝난 후 flag 체크 후 true이면
//배열에 m의 값을 삽입
m ++;
temp = 0;
//m의 값은 하나씩 더해주고
//temp 값은 초기화 시켜줌
}
for(int i = 0; i < marr.length; i++) {
if(marr[i] == 0) {
break;
}
System.out.print(marr[i] + " ");
}