[VTT Q4 Contest 08] Bài 3: Nhận kẹo [NKEO]

Xem dạng PDF

Gửi bài giải


Điểm: 3,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: NKEO.INP
Output: NKEO.OUT

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Cho một dãy số nguyên dương. Mỗi bước thao tác như sau: chọn hai phần tử bất kỳ, gọi là ~A~ và ~B~, và chọn một số nguyên tố ~X~ sao cho ~A~ chia hết cho ~X~; sau đó thay ~A~ bằng ~A / X~ và thay ~B~ bằng ~B \times X~. Có thể thực hiện thao tác này bao nhiêu lần tùy ý. Khi dừng lại, số kẹo nhận được bằng ước chung lớn nhất của tất cả các số trong dãy.

Cho ~n~ và dãy gồm ~n~ số nguyên dương. Hãy tính số kẹo lớn nhất có thể nhận được.

Dữ liệu

  • Dòng đầu chứa số nguyên dương ~n~ (~2 \le n \le 10^5~) là số phần tử của dãy.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ (~1 \le a_i \le 10^6~).

Kết quả

Ghi một số nguyên là số kẹo lớn nhất nhận được.

Ví dụ

NKEO.INP

3
27 40 24

NKEO.OUT

12

Giải thích: Chọn ~A = 27, B = 40, X = 3~ được dãy 9, 120, 24. Chọn ~A = 24, B = 9, X = 2~ được dãy 18, 120, 12. Chọn ~A = 120, B = 18, X = 2~ được dãy 36, 60, 12. Ước chung lớn nhất của 36, 60, 12 là 12.

Giới hạn

  • Subtask 1 (60% số điểm): ~n \le 100~.
  • Subtask 2 (40% số điểm): không có ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.