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

Create a program to ask a number and print all divisors

下面是我的代码:

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. 您只打印 i,您需要在循环结束时打印完整列表。
  2. 您只是在 [1, 100) 的范围内迭代除数,但是,要使用这种天真的方法找到所有除数,理想情况下您需要迭代 [1, num) 的范围。例如,1000 是 2000 的约数,但您的方法会漏掉大小写。
  3. 您可以使用 list_divisors 作为变量名,而不是 lista,因为它更具可读性。

因此您的代码变为:

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)