ए, बी और एन दिया गया है। और हमें निम्नलिखित शर्तों पर विचार करना होगा और n अंकों को जोड़ने के लिए इष्टतम समाधान खोजना होगा जैसे कि यह प्रत्येक पुनरावृत्ति के बाद b से विभाज्य हो।
-
a . में एक अंक जोड़ें ऐसे में a जिस तरह से इसे जोड़ने के बाद, a b . से विभाज्य है ।
-
a . का सबसे छोटा मान प्रिंट करें चरण 1 के n पुनरावृत्तियों के बाद संभव।
-
प्रिंट असफल यदि ऑपरेशन विफल हो जाता है।
प्रत्येक अंक जोड़ने के बाद विभाज्यता की जाँच करें।
इनपुट
a=5 b=4 n=4
आउटपुट
52000
स्पष्टीकरण
0 . से जोड़ा जाने वाला पहला अंक करने के लिए 9 , यदि कोई भी अंक a . नहीं बनाता है b . से विभाज्य तो जवाब है -1 जिसका अर्थ है अगर n अंक a . में जोड़े जाते हैं . a को कभी भी b . से विभाजित न करें . अन्यथा पहला अंक जोड़ें जो शर्त को पूरा करता है और फिर 0 . जोड़ें उसके बाद (n-1) कई बार क्योंकि अगर a b . से विभाज्य है फिर a*10, एक*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;
}