আমাদের একটি সংখ্যা N দেওয়া আছে। কাজ হল N-এর ডিজিটগুলোর মধ্যে কতগুলো N-কে ভাগ করে দেয় তা গণনা করা।
মনে রাখার বিষয়
- ডিজিট ০ হলে এড করা হবে না।
- একই ডিজিট একাধিকবার আসলে প্রতিবার আলাদা করে কাউন্ট হবে।
উদাহরণ
ইনপুট: number = 2240 → আউটপুট: 3
ব্যাখ্যা: ডিজিটগুলো ২, ২, ৪, ০। ২, ২, ৪ - এই তিনটি ২২৪০ কে ভাগ করে দেয়। ০ উপেক্ষা।
ইনপুট: number = 755 → আউটপুট: 2
ব্যাখ্যা: ডিজিটগুলো ৭, ৫, ৫। ৫ এবং ৫ - এই দুটি ৭৫৫ কে ভাগ করে দেয়।
সমাধানের পদ্ধতি
- সংখ্যা
numইনপুট নিন। - যতক্ষণ
num > 0:- শেষ ডিজিট
rem = num % 10নিন। rem > 0এবংnum % rem == 0হলে কাউন্ট বাড়ান।num = num / 10করুন।
- শেষ ডিজিট
- ফলাফল রিটার্ন করুন।
প্রোগ্রাম উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int count(int num) {
int original = num;
int count = 0, rem;
while (num > 0) {
rem = num % 10;
if (rem > 0 && original % rem == 0)
count++;
num = num / 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