তিনটি সংখ্যা x, y, n দেওয়া থাকলে, x এবং y-এর গুণিতকগুলো মিলিয়ে সর্ট করার পর n-তমটি বের করতে হবে।
উদাহরণ
ইনপুট: x = 2, y = 3, n = 7
২-এর গুণিতক: ২, ৪, ৬, ৮, ১০, ১২, ১৪
৩-এর গুণিতক: ৩, ৬, ৯, ১২, ১৫, ১৮, ২১
মিলিয়ে সর্ট: ২, ৩, ৪, ৬, ৮, ৯, ১০, ১২, ১৪, ১৫, ১৮, ২১
আউটপুট: 10 (৭তম)
অ্যালগরিদম
- ভেক্টরে
xএবংy-এর প্রথমnগুণিতক রাখুন। - সর্ট করুন এবং ডুপ্লিকেট বাদ দিন।
n-1ইনডেক্সের উপাদান ফেরত দিন।
সি++ ইমপ্লিমেন্টেশন
#include <bits/stdc++.h>
using namespace std;
int findNthMultiple(int x, int y, int n) {
vector 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++) {
int val = y * i;
if (!binary_search(multiples.begin(), multiples.end(), val)) {
multiples.push_back(val);
sort(multiples.begin(), multiples.end());
}
}
return multiples[n - 1];
}
int main() {
int x = 2, y = 3, n = 7;
cout << findNthMultiple(x, y, n) << endl; // 10
return 0;
}
আউটপুট
10