Cho số, đếm bao nhiêu chữ số của nó chia hết cho chính số đó. Ví dụ 1012 → 3 (chữ số 1,1,2 chia hết 1012).
Giải pháp: tách từng chữ số bằng modulus, kiểm tra số có chia hết cho chữ số không (bỏ qua chữ số 0).
Ví dụ mã nguồn
#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);
}
Kết quả đầu ra
Number of digits that divides 1012 evenly, is: 3