Với hai số nguyên dương \(a\) và \(b\), ta định nghĩa \(f(a,b) = lcm(a,b) - gcd(a,b)\); trong đó \(lcm(a,b)\) là bội chung nhỏ nhất của hai số \(a,\ b\) và \(gcd(a,b)\) là ước chung lớn nhất của hai số \(a,\ b\).
Yêu cầu: Cho số nguyên dương \(n\), hãy tìm giá trị lớn nhất của \(f(a,b)\) sao cho \(a + b = n\)?
Dữ liệu vào:
+ Số nguyên dương \(n\ (2 \leq n \leq 10^{9})\).
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: \(f(a,b) = 4\) có giá trị lớn nhất khi \(a = 1,b = 5\) (hoặc \(a = 5,\ b = 1\)), khi đó \(lcm(1,5) = 5\) và \(\gcd(1,5) = 1\)
+ Ví dụ 2: \(f(a,b) = 20\) có giá trị lớn nhất khi \(a = 3,b = 7\) (hoặc \(a = 7,b = 3\)), khi đó \(lcm(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 \leq n \leq 2000\);
+ Có 30% số test khác tương ứng với 30% số điểm có \(2 \leq n \leq 2 \times 10^{5}\);
+ 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.
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |