Cho số nguyên dương n.
Yêu cầu: Liệt kê tất cả các ước dương của n theo thứ tự tăng dần.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 1012).
Dữ liệu ra: In các ước dương của n theo thứ tự tăng dần, cách nhau một dấu cách.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 12 | 1 2 3 4 6 12 | Các số 1, 2, 3, 4, 6 và 12 đều chia hết cho 12 nên là các ước dương của 12. |
Giới hạn:
Ghi chú: Ước dương của một số nguyên dương n là số nguyên dương chia hết cho n (hay n chia hết cho số đó).
Cho số nguyên dương n.
Yêu cầu: Đếm số lượng ước dương của n.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 1012).
Dữ liệu ra: In số lượng ước dương của n.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 12 | 6 | 12 có các ước dương là 1, 2, 3, 4, 6 và 12. |
Giới hạn:
Cho hai số nguyên dương a và b.
Yêu cầu: Kiểm tra xem a có là ước của b hay không. Nếu đúng in YES, ngược lại in NO.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In YES hoặc NO.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 6 24 | YES | 24 chia hết cho 6 nên 6 là ước của 24. |
Giới hạn:
Cho hai số nguyên dương n và m.
Yêu cầu: Liệt kê tất cả các bội dương của n không vượt quá m theo thứ tự tăng dần.
Dữ liệu vào: Một dòng chứa hai số nguyên dương n và m (1 ≤ n ≤ m ≤ 1012).
Dữ liệu ra: In các bội dương của n không vượt quá m, cách nhau một dấu cách.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 6 30 | 6 12 18 24 30 | Đây là các bội dương của 6 không vượt quá 30. |
Giới hạn:
Cho hai số nguyên dương n và k.
Yêu cầu: Tìm bội nhỏ nhất của n không nhỏ hơn k.
Dữ liệu vào: Một dòng chứa hai số nguyên dương n và k (1 ≤ n, k ≤ 1018).
Dữ liệu ra: In bội nhỏ nhất của n không nhỏ hơn k.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 6 25 | 30 | 30 là bội nhỏ nhất của 6 và không nhỏ hơn 25. |
Giới hạn:
Cho hai số nguyên dương a và b.
Yêu cầu: Tính ước chung lớn nhất (ƯCLN) của hai số a và b.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In ƯCLN của hai số.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 24 36 | 12 | ƯCLN(24, 36) = 12. |
Giới hạn:
Cho hai số nguyên dương a và b.
Yêu cầu: Tính bội chung nhỏ nhất (BCNN) của hai số a và b.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1012).
Dữ liệu ra: In BCNN của hai số.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 12 18 | 36 | BCNN(12,18)=36. |
Giới hạn:
Cho hai số nguyên dương a và b.
Yêu cầu: Kiểm tra hai số có nguyên tố cùng nhau hay không. Nếu đúng in YES, ngược lại in NO.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In YES hoặc NO.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 15 28 | YES | ƯCLN(15,28)=1 nên hai số nguyên tố cùng nhau. |
Giới hạn:
Cho dãy gồm n số nguyên dương.
Yêu cầu: Tính ƯCLN của tất cả các số trong dãy.
Dữ liệu vào: Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105). Dòng thứ hai chứa n số nguyên dương ai (1 ≤ ai ≤ 1012).
Dữ liệu ra: In ƯCLN của cả dãy.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 4 24 36 48 60 |
12 | ƯCLN của cả dãy bằng 12. |
Giới hạn:
Cho dãy gồm n số nguyên dương.
Yêu cầu: Tính BCNN của tất cả các số trong dãy.
Dữ liệu vào: Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 104). Dòng thứ hai chứa n số nguyên dương ai (1 ≤ ai ≤ 106). Đảm bảo kết quả không vượt quá 1018.
Dữ liệu ra: In BCNN của cả dãy.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 3 6 8 12 |
24 | BCNN của 6, 8 và 12 là 24. |
Giới hạn:
Cho hai số nguyên dương a và b (b ≠ 0), biểu diễn phân số a/b.
Yêu cầu: Rút gọn phân số về dạng tối giản.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In phân số sau khi rút gọn dưới dạng p/q.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 24 36 | 2/3 | ƯCLN(24,36)=12 nên phân số tối giản là 2/3. |
Giới hạn:
Có a chiếc bánh và b chiếc kẹo. Muốn chia đều cho nhiều bạn nhất sao cho mỗi bạn nhận cùng số bánh và cùng số kẹo, đồng thời dùng hết tất cả bánh và kẹo.
Yêu cầu: Tìm số bạn nhiều nhất có thể chia.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In số bạn lớn nhất.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 24 36 | 12 | Có thể chia cho nhiều nhất 12 bạn. |
Giới hạn:
Có hai sợi dây dài a và b mét. Muốn cắt thành các đoạn có cùng độ dài lớn nhất sao cho không còn đoạn dây thừa.
Yêu cầu: Tìm độ dài lớn nhất của mỗi đoạn dây.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In độ dài lớn nhất của mỗi đoạn.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 18 30 | 6 | Có thể cắt thành các đoạn dài 6 mét. |
Giới hạn:
Một đèn giao thông đổi màu sau mỗi a giây, đèn còn lại đổi màu sau mỗi b giây. Ban đầu cả hai cùng đổi màu tại thời điểm 0.
Yêu cầu: Tìm thời điểm dương nhỏ nhất mà cả hai đèn cùng đổi màu trở lại.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1012).
Dữ liệu ra: In thời điểm cần tìm.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 12 18 | 36 | Sau 36 giây hai đèn cùng đổi màu. |
Giới hạn:
Một nền nhà hình chữ nhật có chiều dài a và chiều rộng b. Muốn lát kín nền bằng các viên gạch hình vuông có kích thước lớn nhất mà không phải cắt viên gạch nào.
Yêu cầu: Tìm cạnh của viên gạch lớn nhất có thể sử dụng.
Dữ liệu vào: Một dòng chứa hai số nguyên dương a và b (1 ≤ a, b ≤ 1018).
Dữ liệu ra: In cạnh của viên gạch lớn nhất.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 24 36 | 12 | Viên gạch hình vuông cạnh 12 sẽ lát kín nền mà không cần cắt. |
Giới hạn: