a, b এবং n দেওয়া আছে। আমাদের নিচের শর্তগুলো বিবেচনা করে অপ্টিমাল সমাধান খুঁজে বের করতে হবে: a-এ n অঙ্ক যোগ করা যাতে প্রতিটি ইটারেশনের পর এটি b দ্বারা বিভাজ্য হয়।
a-এ একটি অঙ্ক যোগ করুন এমনভাবে যাতে যোগ করার পর a b- দ্বারা বিভাজ্য হয়।
n ইটারেশনের পর a-এর সম্ভাব্য সবচেয়ে ছোট মান প্রিন্ট করুন।
অপারেশন ব্যর্থ হলে fail প্রিন্ট করুন।
প্রতিটি অঙ্ক যোগ করার পর বিভাজ্যতা চেক করুন।
ইনপুট
a=5 b=4 n=4
আউটপুট
52000
ব্যাখ্যা
প্রথম অঙ্ক 0 থেকে 9 পর্যন্ত যোগ করতে হবে, যদি কোনো অঙ্ক a-কে b- দ্বারা বিভাজ্য না করে তবে উত্তর -1 অর্থাৎ যদি n অঙ্ক a-এ যোগ করা হয়। a কখনো b- দ্বারা বিভাজ্য হবে না। অন্যথায় শর্ত পূরণ করা প্রথম অঙ্ক যোগ করুন এবং তারপর 0 যোগ করুন (n-1) বার কারণ যদি a b- দ্বারা বিভাজ্য হয় তবে a*10, a*100, ... ও b- দ্বারা বিভাজ্য হবে।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 4, n = 4;
int num = a;
for (int i = 0; i <= 9; i++) {
int temp = a * 10 + i;
if (temp % b == 0) {
a = temp;
break;
}
}
if (num == a) {
a = -1;
}
for (int j = 0; j < n - 1; j++) {
a *= 10;
}
if(a > -1) {
cout << a;
} else {
cout << "fail";
}
return 0;
}