自除数
自除数 是指可以被它包含的每一位数整除的数。 例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 自除数 不允许包含 0 。 给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。 来源:力扣(LeetCode)
AC代码class Solution:
def selfDividingNumbers(self, left: int, right: int) -> List[int]:
return [n for n in range(left, right + 1) if self.isFlag(n)]
def isFlag(self, n):
if '0' in str(n):
return False
t = n % 10
m = n
while t != 0:
if n % t != 0:
return False
else:
m = m // 10
t = m % 10
return True
官方代码
class Solution:
def selfDividingNumbers(self, left: int, right: int) -> List[int]:
def isSelfDividing(num: int) -> bool:
x = num
while x:
x, d = divmod(x, 10)
if d == 0 or num % d:
return False
return True
return [i for i in range(left, right + 1) if isSelfDividing(i)]
# 作者:LeetCode-Solution
一个做法,简单题里属于思路单纯的