आपको तीन संख्याएं दी गई हैं। आपको पहले दो संख्याओं के गुणजों में से nवां गुणज ढूंढना है। आइए एक उदाहरण देखते हैं इसे और स्पष्ट रूप से समझने के लिए।
इनपुट
x = 2 y = 3 n = 7
आउटपुट
10
2 के पहले n गुणज हैं 2 4 6 8 10 12 14
3 के पहले n गुणज हैं 3 6 9 12 15 18 21
यदि दोनों गुणजों को जोड़कर क्रमबद्ध करें तो हमें 2 3 4 6 8 9 10 12 14 15 18 21 मिलते हैं और सूची से nवीं संख्या 10 है।
एल्गोरिदम
- सभी गुणजों को स्टोर करने के लिए एक वेक्टर आरंभ करें।
- x के पहले n गुणज ढूंढें और उन्हें उपरोक्त वेक्टर में जोड़ें।
- अब, y के पहले n गुणज ढूंढें।
- उन्हें वेक्टर में जोड़ें यदि वे पहले से वेक्टर में मौजूद नहीं हैं।
- गुणजों को क्रमबद्ध करें।
- वेक्टर से nवां गुणज प्रिंट करें।
कार्यान्वयन
निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:
#include<bits/stdc++.h>
using namespace std;
int findNthMultiple(int x, int y, int n) {
vector<int> multiples;
for (int i = 1; i <= n; i++) {
multiples.push_back(x * i);
}
sort(multiples.begin(), multiples.end());
for (int i = 1, k = n; i <= n && k; i++) {
if (!binary_search(multiples.begin(), multiples.end(), y * i)) {
multiples.push_back(y * i);
sort(multiples.begin(), multiples.end());
}
}
return multiples[n - 1];
}
int main() {
int x = 2, y = 3, n = 7;
cout << findNthMultiple(x, y, n) << endl;
return 0;
}
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
10