我创建了一个代码来回答这个问题:
创建一个程序,要求用户输入一个数字,然后打印出该数字的所有除数的列表。 (如果你不知道除数是多少,那么它是一个数均分为另一个数的数。例如,13是26的除数,因为26/13没有余数。)
不幸的是,我的程序没有返回给定数字的除数值。这是我的代码:
print('Enter a number to know its divisors :')
number = int(input())
while number > 1:
inf = number - 1
result = number % inf
if result == 0:
print (inf)
你可以告诉我,我的错误在哪里?如果可能的话,我也希望您就如何使这个程序更简单发表意见。
最佳
答案 0 :(得分:0)
你需要在你的for循环中实际递减变量inf
,并运行循环直到inf
达到1(而不是number
,这应该保持不变) 。但是,您可以使用range
,filter
和lambda
函数更轻松地编写程序:
print('Enter a number to know its divisors :')
number = int(input())
for divisor in filter(lambda x: number % x == 0, range(1, number)):
print(divisor)
编辑:我觉得忘记你可以使用for ... in ... if
过滤而感觉有点白痴。
print([x for x in range(1, number) if number % x == 0])
答案 1 :(得分:0)
使用此解决方案:
num=int(input("enter a number"))
lst=[]
for i in range(2, num):
if num % i==0:
lst.append(i)
print(lst)