Skip to content

728. Self Dividing Numbers

Math

Problem - Self Dividing Numbers

Easy

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] (both inclusive).

 

Example 1:

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

Example 2:

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

 

Constraints:

  • 1 <= left <= right <= 104

Solutions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution:
    def selfDividingNumbers(self, left: int, right: int) -> List[int]:
        def check_num(val: int) -> bool:
            val2 = val
            while val2:
                if val2 % 10 == 0 or val % (val2 % 10):
                    return False
                val2 //= 10
            return True

        return [val for val in range(left, right + 1) if check_num(val)]

Submission Stats:

  • Runtime: 6 ms (70.37%)
  • Memory: 17.7 MB (79.08%)