编写函数输出自除数
类型:函数
描述
一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128是一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)判断num是否为自除数,使用该函数输出不大于N的所有自除数。
(注意,含有数字0的数不是自除数)
输入格式
输入为一行,一个正整数N(N>=1)。
输出格式
输出为一行,是不大于N的所有自除数,每个数后面有一个空格。
示例 1
输入:1
输出:1
示例 2
输入:22
输出:1 2 3 4 5 6 7 8 9 11 12 15 22
标准答案
def selfDivisor(num):
if '0' in str(num):
return False # 包含数字0的不是自除数
for c in str(num): # 对数字num中的每位数字进行遍历
if num % int(c) != 0: # 测试num的每一位是否是num的因子
return False # 如果存在不能整除的数,则不是自除数
else: # 如果for遍历顺利结束,未遇到return,则执行else子句,返回True
return True
n=int(input())
for num in range(1,n+1): # 注意不大于包括等于n
if selfDivisor(num): # 调用函数,当返回值为True时,该数为自除数,输出这个数
print(num,end=' ') # 输出以空格结尾
我的答案
def selfDivisor(num):
if '0' in num:
return False
for i in num:
if int(num)%int(i) != 0:
return False
else:
return True
n = int(input())
for i in range(1,n+1):
if selfDivisor(str(i)):
print(i,end=' ')