Ta có tổng và gcd của hai số a và b. Chúng ta phải tìm cả hai số a và b. Nếu không được, hãy trả về -1. Giả sử tổng là 6 và gcd là 2, thì các số là 4 và 2.
Cách tiếp cận giống như GCD được đưa ra, sau đó người ta biết rằng các con số sẽ là bội số của nó. Bây giờ có các bước sau
-
Nếu chúng ta chọn số đầu tiên là GCD, thì số thứ hai sẽ là tổng - GCD
-
Nếu tổng các số được chọn ở bước trước giống với tổng, thì hãy in cả hai số.
-
Nếu không, hãy in -1, vì một số không tồn tại.
Ví dụ
#include <iostream> #include <algorithm> using namespace std; void printTwoNumbers(int s, int g) { if (__gcd(g, s - g) == g && s != g) cout << "first number = " << min(g, s - g) << "\nsecond number = " << s - min(g, s - g) << endl; else cout << -1 << endl; } int main() { int sum = 6; int gcd = 2; printTwoNumbers(sum, gcd); }
Đầu ra
first number = 2 second number = 4