Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm hai số biết tổng và UCLN trong C++


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