Bình mới được học về phép toán modulo. Cho hai số nguyên dương A và B, A modulo B (viết tắt là A mod B) cho kết quả là số dư của phép chia A cho B.
Ví dụ: 5 mod 2 = 1 vì 5 chia 2 có thương là 2 và số dư là 1; 9 mod 3 = 0 vì 9 chia 3 có thương là 3 và số dư là 0.
Bình khá thích thú với phép toán mới này và có khả năng tính rất nhanh. Biết được sở thích của Bình, cô giáo cho một dãy số nguyên dương và yêu cầu Bình tìm các số nguyên dương ~M~ sao cho các phần tử trong dãy khi chia cho ~M~ luôn có cùng số dư. Trước sự ngạc nhiên của các bạn. Bình có thể đưa ra kết quả rất nhanh. Hãy viết chương trình giúp cô giáo kiểm tra kết quả của Bình.
Yêu cầu: cho trước một dãy số nguyên. Hãy viết một chương trình tìm các số nguyên dương ~M~ lớn hơn 1 sao cho các số trong dãy khi chia cho ~M~ luôn có cùng số dư.
Input: MOD.INP
Dòng đầu là một số nguyên ~N~ ~(2 ≤ N ≤ 100)~ cho biết số lượng phần tử trong dãy số.
Mỗi dòng trong ~N~ dòng tiếp theo cho biết giá trị của các phần tử trong dãy là một số nguyên trong đoạn ~[1 .. 10^9]~. Các phần tử trong dãy là phân biệt. Giả sử dữ liệu luôn đảm bảo tìm thấy ít nhất một số nguyên dương M thỏa yêu cầu bên trên.
Output: MOD.OUT ghi trên một dòng là các số ~M~ theo thứ tự tăng dần sao cho tất cả các phần tử trong dãy khi chia cho ~M~ luôn có cùng số dư. Các số cách nhau một khoảng trắng.
Ràng buộc: 50% test có các giá trị trong dãy không quá ~10^4~.
VÍ DỤ 1:
Input
4
24
36
48
96
Output
2 3 4 6 12
VÍ DỤ 2:
Input
3
5
17
23
Output
2 3 6
Bình luận