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

Помогите по пайтон

Степан Ракутин Ученик (66), на голосовании 3 месяца назад
— Джимми, Джимми! Выручай! ? Мне срочно нужна функция, которая находит все делители натурального числа! Только не спрашивай, зачем она мне нужна ???

— Принято, сейчас будет! А как назвать ее?

— Пусть будет get_divisors.

— Принимает она в качестве аргумента одно целое положительное число, да?

— Да, все правильно! И чтобы она ничего на экран не выводила, а только возвращала список всех делителей этого числа в порядке возрастания.

— А выводить или вводить что-то надо в программе еще?

— Нет, нужна только сама функция. Надо прямо срочно! ?

— Уже дееееелаааааюююю!!! ?

Примеры
ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
30
........................................[1, 2, 3, 5, 6, 10, 15, 30]
51
...............................................[1, 3, 17, 51]
Голосование за лучший ответ
Mr.Hale Профи (838) 4 месяца назад
 def get_divisors(n): 
"""
Функция находит все делители натурального числа n.

Args:
n: Натуральное число, для которого нужно найти делители.

Returns:
Список всех делителей числа n в порядке возрастания.
"""
divisors = []
for i in range(1, n + 1):
if n % i == 0:
divisors.append(i)
return divisors
Дмитрий Мерцкен Профи (575) 4 месяца назад
Более оптимизированный метод
 def get_divisors(x): 
a = []
for i in range(1, int(x ** 0.5)+1):
if x % i == 0:
a.append(i)
a.append(x // i)
a = set(a)
a = list(a)
a.sort()
return (a)

#print можно удалить если тебе он не нужен
print(get_divisors(int(input())))
Похожие вопросы