Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में रिपीटेड यूनिट डिविजिबिलिटी


इस लेख में, हम N से विभाज्य रिपीटेड यूनिट्स की संख्या ढूंढने पर चर्चा करेंगे। रिपीटेड यूनिट्स केवल 1 के दोहराव वाले नंबर हैं, मान लीजिए R(k) वह रिपीटेड यूनिट है जहां k 1 की लंबाई है। जैसे R(4) = 1111। इसलिए हमें k का न्यूनतम मान ढूंढना है जिसके लिए R(k) N से विभाज्य है, उदाहरण के लिए −

Input : N = 13 Output : k = 6 Explanation : R(6) यानी 111113 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 से विभाज्य हो।
  • R(i) और R(j) का अंतर 10 की किसी घात से गुणा किया गया रिपीटेड यूनिट होगा, लेकिन 10 और N अपेक्षाकृत प्राइम हैं, इसलिए R(k) N से विभाज्य होगा।

उदाहरण

#include <bits/stdc++.h> using namespace std; int main() {    int N = 31;    int k = 1;    // जांचें कि क्या N 10 के साथ कोप्राइम है।    if (N % 2 == 0 || N % 5 == 0){       k = 0;    } else {       int r = 1;       int power = 1;       // तब तक जांचें जब तक शेषफल 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

निष्कर्ष

इस लेख में, हम दिए गए N से विभाज्य R(k) के लिए k का मान ढूंढने पर चर्चा करते हैं, जहां R(k) रिपीटेड यूनिट्स हैं। हमने k का मान ढूंढने का एक आशावादी तरीका चर्चा किया। हमने इस समस्या को हल करने के लिए C++ कोड पर भी चर्चा की। आप इस कोड को Java, C, Python आदि किसी भी अन्य भाषा में लिख सकते हैं। आशा है कि आपको यह लेख उपयोगी लगा होगा।


  1. OpenCV में C++ का उपयोग करके दीर्घवृत्त कैसे बनाएं? OpenCV में C++ का उपयोग करके दीर्घवृत्त कैसे बनाएं?

    दीर्घवृत्त बनाने के लिए, हमें एक केंद्र, प्रमुख अक्ष और लघु अक्ष की आवश्यकता होती है। इसका मतलब है कि हमें दीर्घवृत्त के लिए तीन पैरामीटर चाहिए। हमें एक मैट्रिक्स चाहिए जहां हम दीर्घवृत्त बनाएंगे, और हमें लाइन की मोटाई और लाइन का रंग घोषित करना होगा। जब हम OpenCV का उपयोग करके दीर्घवृत्त बनाना चाहते

  1. OpenCV में C++ का उपयोग करके रेखा कैसे बनाएं? OpenCV में C++ का उपयोग करके रेखा कैसे बनाएं?

    रेखा बनाने के लिए हमें दो बिंदुओं की आवश्यकता होती है - प्रारंभिक बिंदु और अंतिम बिंदु। हमें रेखा खींचने के लिए एक कैनवास की भी आवश्यकता होती है। OpenCV का उपयोग करके, मैट्रिक्स हमारा कैनवास है, हमें रेखा के प्रारंभिक और अंतिम बिंदुओं को परिभाषित करने की आवश्यकता होती है। हमें रेखा को एक रंग निर्दिष

  1. C++ में N फैक्टोरियल के योग का इकाई स्थान अंक ज्ञात करना C++ में N फैक्टोरियल के योग का इकाई स्थान अंक ज्ञात करना

    5 के फैक्टोरियल के लिए, इकाई स्थान 0 होता है, इसलिए 5 के बाद यह इकाई स्थान को बदलने में योगदान नहीं देगा। N=4 और अधिक के लिए, यह 3 होगा। हम इकाई स्थान के लिए एक चार्ट बना सकते हैं और उसका उपयोग प्रोग्राम में कर सकते हैं। C++ उदाहरण 4) n = 4; return placeVal[n]; } int main() { for (int i =