Ước số chung nhỏ nhất (HSG12'19-20)

View as PDF

Points: 300 (p) Time limit: 1.0s Memory limit: 256M Input: stdin Output: stdout

Ước số chung của dãy số nguyên dương là các số nguyên dương mà tất cả các số trong dãy đều chia hết cho nó. Hôm nay, Tuấn đang học về ước số chung và Tuấn được thầy giáo cho bài toán: Có một dãy số \(A\) gồm \(N\) số nguyên dương, hãy tìm ước số chung nhỏ nhất khác \(1\). Nói cách khác, Tuấn cần tìm số \(D\) nhỏ nhất, sao cho \(D > 1\) và các số trong dãy số \(A\) đều chia hết cho số \(D\) này.

Yêu cầu: Cho một số \(A\) gồm \(N\) số nguyên dương, hãy giúp Tuấn đưa ra số là Ước số chung nhỏ nhất khác \(1\).

Input

  • Dòng đầu tiên chứa số nguyên dương \(N\) (\(N\leq 10^5\))
  • Dòng tiếp theo gồm \(N\) số nguyên dương \(A_i\) là các phần tử của dãy \(A\) (\(A_i\leq 10^6\)).

Output

  • Một số nguyên dương ước chung nhỏ nhất của dãy số. Nếu không tồn tại số siêu nguyên dương nào, in ra \(-1\).

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(N\leq 10^3\), \(A_i\leq 10^5\).
  • Subtask \(2\) (\(40\%\) số điểm): Không có ràng buộc gì thêm

Example

Test 1

Input
3
1 2 3
Output
-1

Test 2

Input
3
2 4 6
Output
2

Comments

There are no comments at the moment.