इस लेख में, हम N द्वारा विभाज्य दोहराई जाने वाली इकाइयों की संख्या खोजने पर चर्चा करेंगे। दोहराई गई इकाइयाँ केवल 1 की दोहराव वाली संख्याएँ हैं, मान लीजिए कि R(k) दोहराई जाने वाली इकाई है जहाँ k 1 की लंबाई है। जैसे R(4) =1111. इसलिए हमें k की न्यूनतम संख्या ज्ञात करनी होगी जिसके लिए R(k) N से विभाज्य है, उदाहरण के लिए -
Input : N = 13 Output : k = 6 Explanation : R(6) i.e 111111 is divisible by 13. Input : N = 31 Output : k = 15
समाधान खोजने के लिए दृष्टिकोण
आप 1 से शुरू करके k के लिए प्रत्येक मान की जाँच करके इस समस्या का समाधान कर सकते हैं, जहाँ R(k) N से विभाज्य है। लेकिन इस समाधान के साथ, हम यह नहीं पाएंगे कि N, R(k) के किसी भी मान से विभाज्य है या नहीं। यह कार्यक्रम को बहुत जटिल बना देगा और शायद काम भी नहीं करेगा।
इस कार्यक्रम के समाधान के लिए एक कुशल दृष्टिकोण है,
- जांचें कि क्या N, 10 के साथ सह अभाज्य है।
- यदि नहीं, तो R(k) k के किसी भी मान के लिए N से विभाज्य नहीं होगा।
- यदि हाँ, तो प्रत्येक दोहराव वाली इकाई R(1), R(2), R(3)... और इसी तरह, R(i) और N के शेष भाग की गणना करें, तो n होगा शेष की संख्या।
- R(i) और R(j) के लिए वही शेष मान ज्ञात कीजिए, जहां R(i) और R(j) दो दोहराई जाने वाली इकाइयाँ हैं ताकि R(i) - R(j) N से विभाज्य हो।
- aR(i) और R(j) के अंतर को इकाई को 10 की कुछ घात से गुणा करके दोहराया जाएगा, लेकिन 10 और N अपेक्षाकृत अभाज्य हैं, इसलिए R(k) N से विभाज्य होगा।
उदाहरण
#include <bits/stdc++.h> using namespace std; int main() { int N = 31; int k = 1; // checking if N is coprime with 10. if (N % 2 == 0 || N % 5 == 0){ k = 0; } else { int r = 1; int power = 1; // check until the remainder is divisible by N. while (r % N != 0) { k++; power = power * 10 % N; r = (r + power) % N; } } cout << "Value for k : "<< k; return 0; }
आउटपुट
Value for k : 15
निष्कर्ष
इस लेख में, हम R(k) के लिए k का मान ज्ञात करने पर चर्चा करते हैं, जहाँ R(k) दिए गए N से विभाज्य दोहराई जाने वाली इकाइयाँ हैं। हमने k का मान ज्ञात करने के लिए एक आशावादी तरीके पर चर्चा की। हमने इस समस्या को हल करने के लिए C++ कोड पर भी चर्चा की। आप इस कोड को किसी अन्य भाषा जैसे जावा, सी, पायथन, आदि में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।