हमें दो पूर्णांक 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