Tìm cặp số
Xem dạng PDF
Gửi bài giải
Điểm:
100,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Tìm cặp số
Mô tả và yêu cầu
Với hai số nguyên dương 𝑎 và 𝑏, ta định nghĩa 𝑓(𝑎, 𝑏) = 𝑙𝑐𝑚(𝑎, 𝑏) − gcd(𝑎, 𝑏); trong đó
𝑙𝑐𝑚(𝑎,𝑏) là bội chung nhỏ nhất của hai số 𝑎, 𝑏 và gcd(𝑎, 𝑏) là ước chung lớn nhất của hai số
𝑎,𝑏.
Yêu cầu: Cho số nguyên dương 𝑛, hãy tìm giá tr ị lớn nhất của 𝑓(𝑎, 𝑏) sao cho 𝑎 + 𝑏 = 𝑛?
Dữ liệu vào
+ Số nguyên dương 𝑛(2 ≤ 𝑛 ≤ 109).
Kết quả: Ghi một số nguyên dương cho biết kết quả của bài toán.
Ví dụ
Ví dụ 1 Ví dụ 2
Input Output Input Output
6 4 10 20
Giải thích ví dụ:
+ Ví dụ 1: 𝑓(𝑎, 𝑏) = 4 có giá trị lớn nhất khi 𝑎 = 1, 𝑏 = 5 (hoặc 𝑎 = 5,𝑏 = 1), khi đó
𝑙𝑐𝑚(1,5) = 5 và 𝑔𝑐𝑑(1,5) = 1
+ Ví dụ 2: 𝑓(𝑎, 𝑏) = 20 có giá trị lớn nhất khi 𝑎 = 3,𝑏 = 7 (hoặc 𝑎 = 7, 𝑏 = 3), khi
đó 𝑙𝑐𝑚(3,7) = 21 và gcd(3,7) = 1
Ràng buộc:
+ Có 40% số test tương ứng với 40% số điểm có 2 ≤ 𝑛 ≤ 2000;
+ Có 30% số test khác tương ứng với 30% số điểm có 2 ≤ 𝑛 ≤ 2 × 105;
+ Có 30% số test còn lại tương ứng với 30% số điểm không ràng buộc gì thêm.
Bình luận