/ / Създайте програма, за да зададете номер и отпечатате всички делители - python, python-3.x, list, conditional

Създайте програма за задаване на номер и отпечатайте всички дивизори - python, python-3.x, list, условен

По-долу е моят код:

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", тогава той трябва да бъде добавен в списъка. Не съм сигурен къде и защо логиката ми е грешна.

Отговори:

2 за отговор № 1
  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)