n দেওয়া আছে। অপারেশন: ২ দিয়ে ভাগ (যদি বিভাজ্য), ২n/৩ (৩ দিয়ে বিভাজ্য), ৪n/৫ (৫ দিয়ে বিভাজ্য)। n কে ১ করার ন্যূনতম মuvian সংখ্যা বের করুন। অসম্ভব হলে -1।
উদাহরণ
n = 10 → আউটপুট: ৪ (১০→৫→৪→২→১)
সমাধানের ধাপসমূহ
লুপে: ২ দিয়ে বিভাজ্য হলে n/=2, count++। ৩ দিয়ে বিভাজ্য হলে n/=3, count+=2। ৫ দিয়ে বিভাজ্য হলে n/=5, count+=3। অন্যথায় -1 রিটার্ন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int solve(int n) {
int m = 0;
while (n != 1) {
if (n % 2 == 0) { n = n / 2; m++; }
else if (n % 3 == 0) { n = n / 3; m += 2; }
else if (n % 5 == 0) { n = n / 5; m += 3; }
else { m = -1; break; }
}
return m;
}
int main() {
int n = 10;
cout << solve(n) << endl;
return 0;
}
ইনপুট
10
আউটপুট
4