Skip to content

Instantly share code, notes, and snippets.

@valignatev
Created September 3, 2015 14:10
Show Gist options
  • Save valignatev/90ed433b55a8b1702146 to your computer and use it in GitHub Desktop.
Save valignatev/90ed433b55a8b1702146 to your computer and use it in GitHub Desktop.
Напишите функцию, которая перебирает натуральные числа от 1 до N включительно и раскладывает каждое число на множители. Результат можно выводить на экран либо копить в любой структуре данных.
#! -*- coding: utf-8 -*-
def factor(number):
"""
Используем разложение на простые множители
"""
factors = [1]
start = 2
while start * start <= n:
if number % start == 0:
factors.append(start)
number //= start
else:
start += 1
if number > 1:
factors.append(number)
return factors
if __name__ == '__main__':
n = int(input('Enter number N: '))
answers = [factor(number) for number in range(1, n+1)]
for index, answer in enumerate(answers):
print(index+1, ' -> ', answer)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment