สมมุติว่าให้หมายเลข เราต้องนับจำนวนหลักของตัวเลขที่หารจำนวนเท่าๆ กัน สมมติว่าตัวเลขคือ 1,012 ผลลัพธ์คือ 3 มีสามหลัก 1, 1 และ 2 ที่หาร 1012 อย่างเท่าเทียมกัน
ในการแก้ปัญหานี้ เราจะหาตัวเลขแต่ละหลักของตัวเลข โดยใช้การทำงานของโมดูลัส และตรวจสอบว่าตัวเลขนั้นหารด้วยหลักนั้นได้หรือไม่ ถ้าหารได้ ให้เพิ่มตัวนับ หากตัวเลขเป็น 0 ก็ไม่ต้องสนใจตัวเลขนั้น
ตัวอย่าง
#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