Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с питоном 3.7

кик сок Ученик (78), закрыт 1 неделю назад
Условие
На вход программе подается натуральное число N.

Создайте список, состоящий из делителей введенного числа, и выведите его на экран.

Формат входных данных
С клавиатуры вводится одно натуральное число N.

Формат выходных данных
Вывести все элементы получившегося списка в столбик.
Лучший ответ
Николай Веселуха Высший разум (360853) 1 месяц назад
 n = int(input()) 
lst = []
if n <= 0:
print ('Loser!')
else:
m = n // 2 + 1
for i in range(m):
if i != 0 and n % i == 0:
lst.append(i)
lst.append(n)
print(*lst, sep='\n')
Остальные ответы
Татьяна Просветленный (23245) 1 месяц назад
 print(*(i for i in range(1, n + 1) if n % i == 0), sep='\n') if (n := int(input())) > 0 else print('Loser!') 
Ксения Райт Гений (86469) 1 месяц назад
Для списка из натуральных делителей вот так временна́я сложность будет O(√N):
 from math import isqrt 
N, D = int(input('N: ')), []; n = isqrt(N)
for i in range(1, n + 1):
if N % i == 0: D.append(i); D.append(N // i)
if n**2 == N: D.remove(n)
print(*sorted(D), sep = '\n')
Любой алгоритм с бо́льшей временно́й сложностью как в двух предыдущих ответах всерьёз можно даже не рассматривать.
А вообще-то у всех натуральных делителей есть числа им противоположенные, которые тоже являются делителями N.
Похожие вопросы