สมมุติว่าให้หมายเลข เราต้องนับจำนวนหลักของตัวเลขที่หารจำนวนเท่าๆ กัน สมมติว่าตัวเลขคือ 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