self dividing numbers

Self Dividing Numbers

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.
Also, a self-dividing number is not allowed to contain the digit zero.
Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.
Example:

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

method 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
a = int(input())
b = int(input())
s = []
for i in range(a,b+1):
s.append(i)
divide =[]
for j in s:
n =int(len(str(j)))
zero = 0
if j%10!=0:
for m in range(0,n):
result = j%((j//10**m)%10)
if result==0:
zero+=1
if zero==n:
divide.append(j)
print(divide)

method 2

1
2
3
4
5
6
7
8
9
10
11
12
13
left = 1
right = 22
output = []
for num in range(left, right + 1):
num_str = str(num)
for c in num_str:
if c == '0':
break
if num % int(c) != 0:
break
else:
output.append(num)
print(output)