हमें दो पूर्णांक m और n दिए गए हैं। लक्ष्य m अंकों की संख्याओं को गिनना है जो n से विभाज्य हैं।
अगर m=1, तो संख्याएं 0,1,2,3,4,5,6,7,8,9 और n=3 हैं तो 3=0,3,6,9 गिनती=4 से विभाजित होने वाली संख्याएं।पी>
आइए उदाहरणों से समझते हैं।
इनपुट - एम=2, एन=9
आउटपुट − n − 10 से विभाज्य m अंकों की संख्याओं की संख्या
स्पष्टीकरण − 10 और 99 के बीच 9 से विभाज्य संख्याएँ हैं -
18, 27, 36, 45, 54, 63, 72, 81, 90, 99
इनपुट एम=3, एन=300
आउटपुट − n से विभाज्य m अंकों की संख्या की संख्या:3
स्पष्टीकरण − 100 और 999 के बीच 300 से विभाज्य संख्याएँ हैं -
300, 600, 900
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक m और n लेते हैं।
-
m-1 अंकों की सबसे बड़ी संख्या को num1 के रूप में परिकलित करें
-
num2 के रूप में सबसे बड़ी m अंकों की संख्या की गणना करें
-
फ़ंक्शन findCount(int n, int L, int R) इनपुट के रूप में n और रेंज (num1 और num2 के बीच) लेता है और उस रेंज में सभी नंबर लौटाता है जो n से विभाज्य हैं।
-
प्रारंभिक गणना 0 के रूप में लें।
-
i=L से शुरू होकर i=R तक। अगर i%n==0, वेतन वृद्धि की संख्या।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include<bits/stdc++.h> using namespace std; // Returns count of m digit numbers having n // as divisor int findCount(int n, int L, int R){ int count=0; int i; for(int i=L;i<=R;i++){ if(i%n==0) { count++; } } return count; } int main(){ int M = 2, N = 9; int i; int num1 = 0; //largest m-1 digit no. for (i = 0; i < (M - 1); i++) num1 = (num1 * 10) + 9; int num2 = 0; //largest m digit no. for (i = 0; i < M; i++) num2 = (num2 * 10) + 9; cout<<"Count of M digit no.s divisible by N:"<<findCount(N,num1+1,num2); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा-
Count of M digit no.s divisible by N:11