আপনাকে তিনটি নম্বর দেওয়া হয়েছে। আপনাকে প্রথম দুটি সংখ্যার গুণিতক থেকে 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 এবং তালিকা থেকে 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