इस समस्या में हम सबसे छोटी K-अंकीय संख्या ज्ञात करने का प्रयास करेंगे, जो X से विभाज्य होगी। इस कार्य को करने के लिए हम इस सूत्र द्वारा सबसे छोटी K-अंकीय संख्या लेंगे (10^(k-1))। फिर जांचें कि संख्या X से विभाज्य है या नहीं, यदि नहीं, तो हम इस सूत्र का उपयोग करके सटीक संख्या प्राप्त करेंगे।
(min+ 𝑋)−((min+ 𝑋) 𝑚𝑜𝑑 𝑋)
एक उदाहरण 5 अंकों की संख्या की तरह है, जो 29 से विभाज्य है। तो 5 अंकों की सबसे छोटी संख्या 10000 है। यह 29 से विभाज्य नहीं है। अब सूत्र को लागू करने पर हम प्राप्त करेंगे -
(10000+ 29)−((10000+29) 𝑚𝑜𝑑 29)=10029−24=10005
संख्या 10005, 29 से विभाज्य है।
एल्गोरिदम
minKDigit(k, x)
begin min = 10 ^ (k-1) if min is divisible by x, return min otherwise return (min + x) – ((min + x) mod x) end
उदाहरण
#include<iostream> #include<cmath> using namespace std; long min_k_digit(int k, int x) { //get the minimum number of k digits int min = pow(10, k-1); if(min % x == 0) { return min; } return (min + x) - ((min + x) % x); } main() { int k, x; cout << "Enter Digit Count(K) and Divisor(N): "; cin >> k >> x; cout << "Result is: " << min_k_digit(k, x); }
आउटपुट
Enter Digit Count(K) and Divisor(N): 5 29 Result is: 10005
आउटपुट
Enter Digit Count(K) and Divisor(N): 6 87 Result is: 100050