Problem ID:
minsum
Points:
2 (partial)
Time limit:
0.075s
Memory limit:
512M
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Perl, Python
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 ≤ 10^9)~
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~.
Sample Input
2 10
Sample Output
12
Giải thích ví dụ:
- Ở ví dụ: Chỉ có cặp (2, 10) thỏa mãn UCLN(2,10) = 2, BCNN(2,10) = 10. Nên tổng là 12
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ì;
Comments