Нижче мій код:
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)