Tham gia hoạt động trại hè Toán học, bạn Minh được giáo viên hướng dẫn về phép toán chia lấy dư. Cụ thể như sau: Nếu cho trước hai số nguyên dương ~X~ và ~Y~ thì phép chia lấy dư của ~X~ đối với ~Y~ ~(X \mod Y)~ là số dư của phép chia ~X~ cho ~Y~. Ví dụ: ~10 \mod 3 = 1~ vì ~10~ chia ~3~ có thương bằng ~3~ và số dư là ~1~. Với phép toán mới này, bạn Minh mong muốn được áp dụng vào những bài toán cụ thể. Bạn Phương thì đam mê những dãy số, hai bạn đã cùng nhau nghiên cứu bài toán thú vị liên quan đến phép chia lấy dư. Bài toán như sau:
Cho một dãy số gồm ~N~ số nguyên dương phân biệt ~a_1, a_2, ..., a_N~. Tìm tất cả các số nguyên dương ~K~ sao cho các phần tử trong dãy số đã cho khi chia ~K~ đều có cùng số dư.
Yêu cầu
Hãy viết chương trình tìm tất cả các số nguyên dương ~K~ lớn hơn ~1~ sao cho mọi phần tử trong dãy số khi chia ~K~ luôn có cùng số dư.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng thứ nhất: Chứa số nguyên dương ~N~ ~(2 \le N \le 100)~ là số lượng phần tử của dãy số.
- Dòng thứ hai: Chứa dãy số nguyên dương ~a_i~ ~(1 \le i \le N,\ 2 \le a_i \le 10^9)~ trên cùng một dòng, các số phân biệt với nhau và mỗi số cách nhau một khoảng trắng.
Dữ liệu đầu ra
Gồm một dòng gồm các số ~K~ theo thứ tự tăng dần sao cho tất cả các phần tử ~a_i~ trong dãy khi chia cho ~K~ đều có cùng số dư. Các số cách nhau một khoảng trắng. Nếu không tìm được số ~K~ thỏa mãn thì xuất kết quả là ~-1~.
Ví dụ
Ví dụ 1
INPUT
3
47 77 35
OUTPUT
2 3 6
Bình luận