Tổng nhỏ nhất – Minh họa C++ và Pascal

Like Tweet Pin it Share Share Email

Với hai số nguyên dương A, B cho trước. Ta dễ dàng tìm được ước chung lớn nhất G và bội chung nhỏ nhất L của hai số A và B.

Bây giờ chúng ta hãy xét bài toán ngược của bài toán trên:

Cho biết trước ước chung lớn nhất G và bội chung nhỏ nhất L của hai số nguyên dương A và B.

Rõ ràng, sẽ có rất nhiều cặp (A, B) nguyên dương có ước chung lớn nhất là G và bộ chung nhỏ nhất là L, tuy nhiên cũng có trường hợp chúng ta không thể tìm được giá trị A, B thỏa mãn. Vì vậy, hãy xác định giá trị nhỏ nhất của tổng A + B, hoặc đưa ra -1 nếu không tìm được cặp (A, B)”.

INPUT: Hai số nguyên dương G và L (1 ≤ G ≤ L ≤ 109)

OUTPUT: Số nguyên dương là tổng nhỏ nhất có thể. Trong trường hợp không tìm được hai số A và B thì đưa ra kết quả là -1.

Ví dụ:

MINSUM.INP MINSUM.OUT
2 10 12
2 20 14
3 5 -1

Giải thích ví dụ:

Ở ví dụ thứ nhất: Chỉ có cặp (2, 10) thỏa mãn UCLN(2,10) = 2, BCNN(2,10) = 10. Nên tổng là 12

Ở ví dụ thứ hai: Có hai cặp (2, 20) và (4, 10) thỏa mãn, tổng nhỏ nhất có thể là 14.

Ở ví dụ thứ ba: không tìm được cặp nào thỏa mãn UCLN là 3 và BCNN là 5

Ràng buộc

  • 40% số điểm tương ứng với số test có 1 ≤ G ≤ L ≤ 100;
  • 60% số điểm còn lại không có ràng buộc gì

Code trong C++

 

Code trong Pascal

 

Các bạn hãy code trong Python nào

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *