हमारे पास दो संख्याओं 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