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.

Tải PDF gốc


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.