Question:
I dug up this link on the Internet: https://clck.ru/JccbR It is written in C ++, I tried to translate it into Python, in proportion to my knowledge, I got:
def test(i):
k = i
while(k):
d = k % 10
k /= 10
if (d and i % d):
return False
return True
n = int(input())
for i in range(1, n + 1):
if (test(i)):
print(i)
The program does not display anything, please tell me where I'm wrong?
Answer:
In Python 3.x:
k /= 10
Returns a floating point number.
Use integer division:
k //= 10
def test(i):
k = i
while(k):
d = k % 10
k //= 10
if (d == 0 or i % d):
return False
return True
examination:
In [174]: for i in range(1, int(input()) + 1):
...: if (test(i)):
...: print(i)
...:
42
1
2
3
4
5
6
7
8
9
11
12
15
22
24
33
36