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