创建一个程序来询问一个数字并打印所有除数

时间:2017-12-06 15:41:01

标签: python python-3.x list conditional

以下是我的代码:

num= int(input("Please enter number"))
lista= []

for i in range(1,100):
    if num%i ==0:
        lista.append(i)
print(i)

但是当我运行相同的时候,我得到以下输出:

Please enter number24
99

Process finished with exit code 0

根据上面的逻辑,我的理解是,由于给定的范围,循环将迭代99次,如果" i"的余数为零,那么它应该附加在列表中。不知道我的逻辑在哪里以及为什么是错误的。

1 个答案:

答案 0 :(得分:2)

  1. 您只打印i,而是需要在循环结束时打印完整列表。
  2. 你只在除数的[1, 100)范围内迭代,但是,为了找到这种天真方法的所有除数,理想情况下你需要迭代[1, num)的范围。例如,1000是2000年的除数,但你的方法会错过这种情况。
  3. 您可以使用lista作为变量名称,而不是list_divisors,因为它更具可读性。
  4. 所以你的代码变成了:

    num = int(input("Please enter number"))
    list_divisors = []
    
    for i in range(1, num):
        if num % i ==0:
            list_divisors.append(i)
    print(list_divisors)