आपको तीन नंबर दिए गए हैं। आपको पहली दो संख्याओं के गुणजों में से n-वें गुणज ज्ञात करना होगा। आइए इसे और स्पष्ट रूप से समझने के लिए एक उदाहरण देखें।
इनपुट
x = 2 y = 3 n = 7
आउटपुट
10
पहला n ****2 का गुणज 2 4 6 8 10 12 14
. हैपहले n ****3 **** के गुणज 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