/ / Створіть програму, щоб запитати число і надрукувати всі дільники - python, python-3.x, list, conditional

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

Відповіді:

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)