আমাদের দুটি পূর্ণসংখ্যা m এবং n দেওয়া হয়েছে। লক্ষ্য হল m সংখ্যার সংখ্যা গণনা করা যা n দ্বারা বিভাজ্য।
যদি m=1 হয়, তাহলে সংখ্যা 0,1,2,3,4,5,6,7,8,9 এবং n=3 তাহলে সংখ্যাগুলি 3=0,3,6,9 গণনা=4 দ্বারা বিভাজ্য।পি>
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − m=2, n=9
আউটপুট − m সংখ্যার সংখ্যা n − 10
দ্বারা বিভাজ্যব্যাখ্যা − 10 থেকে 99 সংখ্যার মধ্যে 9 দ্বারা বিভাজ্য হল −
18, 27, 36, 45, 54, 63, 72, 81, 90, 99
ইনপুট m=3, n=300
আউটপুট − m সংখ্যার সংখ্যা n দ্বারা বিভাজ্য:3
ব্যাখ্যা − 100 এবং 999 এর মধ্যে 300 দ্বারা বিভাজ্য সংখ্যা হল −
300, 600, 900
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা m এবং n পূর্ণসংখ্যা নিই।
-
num1
হিসাবে বৃহত্তম m-1 সংখ্যার সংখ্যা গণনা করুন -
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