এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা প্রদত্ত তিনটি সংখ্যা দিয়ে বিভাজ্য সর্বোচ্চ n-ডিজিট সংখ্যা খুঁজে বের করবে।
সমস্যা সমাধানের ধাপসমূহ
- তিনটি সংখ্যা এবং n ইনিশিয়ালাইজ করুন।
- তিনটি সংখ্যার LCM (লঘুতম সাধারণ গুণনীয়) বের করুন।
- n-ডিজিটের সর্বোচ্চ সংখ্যা সংরক্ষণ করুন।
- যদি সর্বোচ্চ সংখ্যাটি LCM দিয়ে বিভাজ্য হয়, তবে সেটি রিটার্ন করুন।
- অন্যথায়, বাকি বাদ দিয়ে যোগ্য সংখ্যা বের করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int LCM(int x, int y, int z) {
int ans = ((x * y) / (__gcd(x, y)));
return ((z * ans) / (__gcd(ans, z)));
}
int findNumber(int n, int x, int y, int z) {
int lcm = LCM(x, y, z);
int largestNDigitNumber = pow(10, n) - 1;
int remainder = largestNDigitNumber % lcm;
if (remainder == 0) {
return largestNDigitNumber;
}
largestNDigitNumber -= remainder;
if (largestNDigitNumber >= pow(10, n - 1)) {
return largestNDigitNumber;
}
return 0;
}
int main() {
int n = 4, x = 6, y = 7, z = 8;
int result = findNumber(n, x, y, z);
if (result != 0) {
cout << result << endl;
} else {
cout << "Not possible" << endl;
}
return 0;
}
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:
9912
নिष्कর্ষ
এই টিউটোরিয়াল সম্পর্কে আপনার যেকোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানাতে পারেন।