Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm hai số có tổng và GCD được cho trong C ++

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