숫자가 주어졌다고 가정해보자. 우리는 그 수를 균등하게 나누는 수의 자릿수를 세어야 합니다. 숫자가 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