একটি সংখ্যা দেওয়া থাকলে, সেই সংখ্যাকে সমভাবে ভাগ করে এমন অঙ্কগুলোর (digits) সংখ্যা গণনা করতে হবে। সংখ্যা 1012 হলে ফলাফল ৩। তিনটি অঙ্ক ১, ১, ২ আছে যা 1012 কে সমভাবে ভাগ করে।
সমাধান: সংখ্যার প্রতিটি অঙ্ক মডুলাস অপারেশন দিয়ে বের করে, সংখ্যাটি সেটি দিয়ে বিভাজ্য কিনা যাচাই করা। বিভাজ্য হলে কাউন্টার বাড়ানো। অঙ্ক ০ হলে উপেক্ষা করা।
উদাহরণ
#include<iostream> using namespace std; int countDivDigit(int num) { int count = 0; int temp = num; while(temp){ int div = temp%10; if(div != 0){ if(num % div == 0) count++; } temp /= 10; } return count; } int main() { int num = 1012; cout << "Number of digits that divides " << num << " evenly, is: " << countDivDigit(num); } আউটপুট
Number of digits that divides 1012 evenly, is: 3