हमें एक संख्या दी गई है मान लीजिए, N और कार्य उन अंकों की संख्या को उस संख्या में ज्ञात करना है जो संख्या N को विभाजित करती है।
याद रखने योग्य बातें
-
यदि अंक 0 है तो इसे अनदेखा कर देना चाहिए जिसका अर्थ है कि 0 के लिए गिनती नहीं बढ़ाई जाएगी।
-
यदि कोई अंक दो बार दिखाई दे रहा है और वह संख्या को विभाजित करता है, तो गिनती अंकों की घटना पर निर्भर करेगी। उदाहरण के लिए, हमें एक संख्या 2240 दी गई है और इस संख्या में 0 को छोड़कर प्रत्येक अंक संख्या को विभाजित करेगा और 2 दो बार आ रहा है तो अंक 2 के लिए गिनती 2 होगी।
इनपुट - संख्या =2240
आउटपुट - गिनती 3 है
स्पष्टीकरण - संख्या को अंकों में तोड़ें और यह 2, 2, 4, 0 होगा। अब जांचें कि क्या 2 2240 को विभाजित करता है यदि हां तो गिनती बढ़ाएं अन्यथा अगले अंक पर जाएं, इस संख्या में 2, 2, 4 अंक 2240 को विभाजित करता है इसलिए गिनें 3 होगा और हर मामले में अंक 0 को अनदेखा करें।
इनपुट - संख्या =755
आउटपुट - गिनती 2 है
स्पष्टीकरण - संख्या को अंकों में तोड़ें और यह 7, 5, 5 होगा। अब जांचें कि क्या 7 755 को विभाजित करता है यदि हां तो गिनती बढ़ाएं अन्यथा अगले अंक पर जाएं, इस संख्या में 5, 5 अंक 755 को विभाजित करता है इसलिए गिनती 2 होगी और हर मामले में अंक 0 को अनदेखा करें
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
संख्या को एक पूर्णांक चर में इनपुट करें मान लें कि num
-
लूप को तब तक प्रारंभ करें जब तक कि संख्या 0 से अधिक न हो
-
लूप के अंदर, संख्या को अंकों में तोड़ें और परिणामों को एक चर में संग्रहीत करते रहें मान लें कि रेम
-
जांचें कि क्या रेम संख्या को विभाजित करता है यदि हाँ तो एक गणना चर के मूल्य को 1 से बढ़ाएँ और यदि नहीं तो एक गणना चर के मूल्य में वृद्धि न करें।
-
और यह चेक स्टेटमेंट तब लागू होता है जब रेम 0 से बड़ा होता है क्योंकि हमें 0 को अनदेखा करना पड़ता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; int count(int num){ int a=num; int count=0,rem; while(a>0){ rem=a%10; if(rem > 0){ if(num%rem==0){ count++; } } a=a/10; } return count; } int main(){ int num = 2240; cout<<"Count of digits in given number "<<num<<" which divide N are: "<<count(num); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं, तो हमें निम्न आउटपुट मिलेगा -
Count of digits in given number 2240 which divide N are: 3