一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128 一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)送断num 是否为自除数,使用该函数输出不大于N的所有自除数
时间: 2024-05-10 19:18:47 浏览: 82
很高兴能为您解答问题!关于您的问题,我可以通过以下代码来判断一个数是否为自除数,并输出不大于N的所有自除数:
```
def selfDivisor(num):
digits = [int(i) for i in str(num)]
for d in digits:
if d == 0:
return False
elif num % d != 0:
return False
return True
def findSelfDivisors(N):
result = []
for i in range(1, N+1):
if selfDivisor(i):
result.append(i)
return result
print(findSelfDivisors(1000))
```
代码中,我们首先定义了一个 selfDivisor 函数来判断一个数是否为自除数。该函数接受一个整数作为参数,将其转换为数字数组,并依次检查每个数字是否为零、是否能整除参数 num。最后,如果所有数字都能被整除,则返回True,否则返回False。
然后,我们定义了一个 findSelfDivisors 函数,它接受一个整数N作为参数,遍历所有不大于N的数,调用 selfDivisor 函数来找到所有的自除数,并将它们存储在一个列表中返回。
最后,我们调用 findSelfDivisors 函数,并将其结果输出。例如,如果您输入的是N=1000,则会输出从1到1000之间的所有自除数。
阅读全文