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

问题描述 投票:0回答:2

下面是我的代码:

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”的余数为零,那么它应该被追加到列表中。不知道我的逻辑在哪里以及为什么是错误的。

python python-3.x list conditional-statements
2个回答
2
投票
  1. 您只打印
    i
    ,而是需要在循环结束时打印完整列表。
  2. 您仅在
    [1, 100)
    的范围内迭代除数,但是,要使用这种简单的方法找到所有除数,理想情况下您需要在
    [1, num)
    的范围内迭代。例如,1000 是 2000 的约数,但您的方法可能会忽略这种情况。
  3. 您可以使用
    lista
    作为变量名,而不是
    list_divisors
    ,因为它更具可读性。

所以你的代码变成:

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)

0
投票

你可以看看这个,看起来很简单。您还必须包括号码。

num = int(input("Enter a number: "))

for i in range(1, num + 1):
    if num % i == 0:
        print(i, end=" ")
© www.soinside.com 2019 - 2024. All rights reserved.