Cho tổng S và UCLN G của hai số a, b. Tìm a, b. Nếu không thể trả về -1. Ví dụ S=6, G=2 → a=4, b=2 (hoặc 2, 4).
Vì UCLN = G, nên cả a và b đều là bội của G. Chọn a = G, b = S - G. Kiểm tra UCLN(G, S-G) == G và S != G.
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);
}
Kết quả
first number = 2 second number = 4