# PrimFaktorer.py
# Faktoriserar ett positivt heltal i sina primfaktorer
# Definierar en rekursiv funktion faktorisera() och anropar den
# Exempel ur boken Koda matte med Python, sid 95 (www.kodamatte.se)

def faktorisera(n) :                    # Definition av funktionen
    faktorer = []                       # Lista över primfaktorer
    k = 1 
    rest = 1
    while k <= n-2 and rest != 0 :      # Letar efter primfaktor k
       k = k + 1
       rest = n % k

    if rest != 0 :
       faktorer = faktorer + [n]               # n primtal -> Lista 
    else :
       faktorer = faktorer + [k]               # k delar n -> Lista
       faktorer = faktorer + faktorisera(n//k) # Rekursion med n/k
    return faktorer                            # Anropar sig själv

tal = int(input('\n\t Mata in ett positivt heltal:\t'))
print('\n\t Talets primfaktorer:\t', faktorisera(tal), '\n')# Anrop