দুটি ইন্টিজার m এবং n দেওয়া আছে। লক্ষ্য হল m অঙ্কের সংখ্যা যারা n দ্বারা বিভাজ্য, তাদের গণনা করা।
যদি m=1 হয়, তবে সংখ্যাগুলো: 0,1,2,3,4,5,6,7,8,9 এবং n=3 হলে ৩ দ্বারা বিভাজ্য: 0,3,6,9 → count=4।
উদাহরণ
ইনপুট: m=2, n=9
আউটপুট: m অঙ্কের n দ্বারা বিভাজ্য সংখ্যার গণনা: ১০
ব্যাখ্যা: ১০ থেকে ৯৯ পর্যন্ত ৯ দ্বারা বিভাজ্য সংখ্যা: ১৮, ২৭, ৩৬, ৪৫, ৫৪, ৬৩, ৭২, ৮১, ৯০, ৯৯
ইনপুট: m=3, n=300
আউটপুট: m অঙ্কের n দ্বারা বিভাজ্য সংখ্যার গণনা: ৩
ব্যাখ্যা: ১০০ থেকে ৯৯৯ পর্যন্ত ৩০০ দ্বারা বিভাজ্য: ৩০০, ৬০০, ৯০০
অ্যাপ্রোচ
- m এবং n ইন্টিজার নেওয়া হয়।
- সর্বোচ্চ m-1 অঙ্কের সংখ্যা num1 হিসেবে হিসাব করা হয়।
- সর্বোচ্চ m অঙ্কের সংখ্যা num2 হিসেবে হিসাব করা হয়।
findCount(int n, int L, int R)ফাংশন n এবং রেঞ্জ (num1 এবং num2-এর মধ্যবর্তী) গ্রহণ করে সেই রেঞ্জে n দ্বারা বিভাজ্য সব সংখ্যা রিটার্ন করে।- প্রাথমিক count ০।
- for লুপে i=L থেকে i<=R পর্যন্ত: i%n==0 হলে count বাড়ানো হয়।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int findCount(int n, int L, int R) {
int count = 0;
for (int i = L; i <= R; i++) {
if (i % n == 0) {
count++;
}
}
return count;
}
int main() {
int M = 2, N = 9;
int num1 = 0;
for (int i = 0; i < (M - 1); i++)
num1 = (num1 * 10) + 9;
int num2 = 0;
for (int 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