dayucln - Dãy ước số chung lớn nhất
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: admin

An mới bắt đầu học toán và cậu ta vẫn chưa biết gì về ước số chung lớn nhất. Cho nên cậu ta cần sự giúp đỡ của bạn để làm một vài phép toán. An có một dãy A gồm N số nguyên, được đánh số từ 1 đến N và An muốn tạo một mảng B gồm N+1 phần tử được đánh số từ 1 đến N+1 và các phần tử của mảng B có tính chất sau: UCLN(B[i], B[i + 1]) = A[i], ∀ 1 ≤ i ≤ N.

Nếu như có nhiều kết quả thì bạn chỉ cần cho An biết mảng B có tổng các phần tử là nhỏ nhất (vì cậu ta chỉ mới bắt đầu học toán nên rất ngại các con số lớn).

Dữ liệu vào: 

- Dòng đầu tiên chứa một số nguyên T - số lượng test case (1 ≤  T ≤ 10). Tiếp theo là các test case:

- Dòng đầu tiên của mỗi test case chứa một số nguyên dương N - số lượng phần tử của mảng A (2 ≤ N ≤ 105).

- Dòng thứ hai chứa N số nguyên A1 A2 ... AN (1  ≤ Ai  ≤ 109)

Dữ liệu ra: 

- Với mỗi test case xuất trên một dòng chứa N+1 phần tử của mảng B (0 < Bi)

Ví dụ

  • input
    2
    3
    1 2 4
    3
    6 10 2
    output
    1 2 4 4
    6 30 10 2
Back to Top