# Self Dividing Numbers Problem

## Description

LeetCode Problem 728.

A self-dividing number is a number that is divisible by every digit it contains.

• For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.

A self-dividing number is not allowed to contain the digit zero.

Given two integers left and right, return a list of all the self-dividing numbers in the range [left, right].

Example 1:

 1 2 Input: left = 1, right = 22 Output: [1,2,3,4,5,6,7,8,9,11,12,15,22]

Example 2:

 1 2 Input: left = 47, right = 85 Output: [48,55,66,77]

Constraints:

• 1 <= left <= right <= 10^4

## Sample C++ Code

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 class Solution { public: bool checkSelfDividing(int num) { bool isSelfDividing = true; int n = num, p; while (n > 0) { p = n % 10; if (p == 0) { isSelfDividing = false; break; } if (num % p != 0) { isSelfDividing = false; break; } n = n / 10; } return isSelfDividing; } vector selfDividingNumbers(int left, int right) { vector ans; for (int i = left; i <= right; i ++) { if (checkSelfDividing(i)) ans.push_back(i); } return ans; } };