По-долу е моят код:
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- Вие печатате просто
i
, вместо това трябва да отпечатате пълния списък в края на цикъла. - Вие повтаряте в обхвата на
[1, 100)
само за дивизорите обаче, за да намерите всички дивизори с този наивен подход, в идеалния случай би трябвало да повторите диапазона от[1, num)
, Например 1000 е делител за 2000 г., но вашият подход би пропуснал случая. - Вместо
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)