숫자가 주어졌다고 가정해보자. 우리는 그 수를 균등하게 나누는 수의 자릿수를 세어야 합니다. 숫자가 1012이고 결과가 3이라고 가정합니다. 1012를 균등하게 나누는 세 자리 1, 1, 2가 있습니다.
이를 해결하기 위해 모듈러스 연산을 사용하여 숫자의 각 자릿수를 찾고 숫자가 해당 자릿수로 나눌 수 있는지 여부를 확인한 다음 나눌 수 있는 경우 카운터를 늘립니다. 숫자가 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