ए, बी और एन दिया गया है। और हमें निम्नलिखित शर्तों पर विचार करना होगा और 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; }