Scomposizione in fattori primi

Tags : python numeri primi

Utilizzando il Crivello di Eratostene precedentemente mostrato, è possibile scrivere una funzione in grado di restituire in una lista i fattori primi di cui è composto un numero:

import math
def primo(n):
    i = 3
    limite = math.sqrt(n)
    if (n == 2) | (n ==3 ):
        return True
    if (n < 2) | (n % 2 == 0) | (n % 3 == 0):
        return False
    while (i <= limite):
        if n % i == 0:
            return False
        i += 2
    return True

def scomponi(n):
    i = 1
    l = []
    while not n == 1:
        if primo(i) && (n % i == 0):
            n /= i
            l.append(i)
            i = 0
        i += 1
    return l

Comments !