Gửi bài giải
Điểm:
0,10 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
THAYDOISO.INP
Output:
THAYDOISO.OUT
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Cho một dãy số nguyên dương gồm n phần tử ~a_1, a_2, \ldots, a_n~. Trọng số ~W~ của dãy ~a~ được định nghĩa là ước chung lớn nhất của tất cả các phần tử trong dãy, tức là ~W = \gcd(a_1, a_2, \ldots, a_n)~.
Ở đây, ~gcd~ được định nghĩa là phép lấy ước chung lớn nhất.
Bạn được phép thay đổi tối đa hai phần tử bất kỳ trong dãy ~a~ thành hai số nguyên dương khác sao cho trọng số mới của dãy đạt giá trị lớn nhất có thể.
Nhiệm vụ của bạn là tìm giá trị lớn nhất có thể của trọng số mới.
Dữ liệu vào từ tệp văn bản: THAYDOISO.INP
- Dòng đầu tiên gồm số nguyên dương ~n~ (~3 \le n \le 2 \cdot 10^5~).
- Dòng thứ hai gồm ~n~ số nguyên dương ~a_1, a_2, \ldots, a_n~ (~1 \le a_i \le 10^9~).
Kết quả ghi ra tệp văn bản: THAYDOISO.OUT
- Gồm số nguyên dương duy nhất là giá trị lớn nhất có thể của trọng số mới sau khi thay đổi tối đa hai phần tử trong dãy ~a~.
Scoring
- Subtask ~1~ (~30\%~ số điểm): ~N = 3~.
- Subtask ~2~ (~30\%~ số điểm): ~N, a_i \le 1000~.
- Subtask ~3~ (~30\%~ số điểm): ~N, a_i \le 10^5~.
- Subtask ~4~ (~10\%~ số điểm): Không có ràng buộc gì thêm.
Example
Sample Input 1
3
4 4 12
Sample Output 1
12
Sample Input 2
5
6 1 9 2 12
Sample Output 2
3
Explanation
Ở ví dụ thứ nhất, ta thay hai phần tử ~a_1~ và ~a_2~ thành giá trị ~12~.
Ở ví dụ thứ hai, ta thay hai phần tử ~a_2~ và ~a_4~ thành giá trị ~3~.