हमारे पास दो संख्याओं a और b का योग और gcd है। हमें a और b दोनों संख्याएँ ज्ञात करनी हैं। यदि यह संभव नहीं है, तो वापसी -1। मान लीजिए कि योग 6 है और gcd 2 है, तो संख्याएँ 4 और 2 हैं।
दृष्टिकोण ऐसा है, जैसा कि GCD दिया जाता है, तो ज्ञात होता है कि संख्याएँ इसके गुणज होंगी। अब निम्नलिखित चरण हैं
-
यदि हम पहली संख्या को GCD के रूप में चुनते हैं, तो दूसरी संख्या योग होगी - GCD
-
यदि पिछले चरण में चुनी गई संख्याओं का योग योग के समान है, तो दोनों संख्याओं को प्रिंट करें।
-
अन्यथा प्रिंट करें -1, क्योंकि कोई संख्या मौजूद नहीं है।
उदाहरण
#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);
} आउटपुट
first number = 2 second number = 4