Код: Выделить всё
def factorize(n):
sieve = [True] * (n + 1)
for x in range(2, int(len(sieve) ** 0.5) + 1):
if sieve[x]:
for i in range(x + x, len(sieve), x):
sieve[i] = False
lowerPrimes = i for i in range(2, len(sieve)) if sieve[i]] and (n % i == 0)]
return lowerPrimes
Код: Выделить всё
factorize(n)Например, Factorize(99020) возвращает [2, 5, 4951], но я бы хотел, чтобы он возвращал [ 2, 2, 5, 4951], как 2*2*5*4951 = 99020.
Я знаю, что мой подход даже не близок, но мог бы ты помогаешь мне сделать это так?
Подробнее здесь: https://stackoverflow.com/questions/160 ... -in-python
Мобильная версия