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