def faktorisera(tal):
lst = []
for d in range(2,1+tal//2):
if(tal%d == 0):
lst.append(d)
lst.extend(faktorisera(tal//d))
return(lst)
return [tal]
for n in range(1,20):
print(n,"=",faktorisera(n))
exempel
faktorisera(18)
1
Inledningsvis tal//2 kommer vara 9 vilket +1 blir 10. Så loopen arbetar med start på tal 2 fram till 9
Loopen börjar med att testa delbarheten från siffran 2. Dvs, d = 2. Är 18 delbart med 2?
def faktorisera(18):
lst = []
for d in range(2,10):
if(18%2 == 0):
lst.append(2)
lst.extend(faktorisera(9))
return(lst)
return [tal]
Japp! 18 är delbart med 2. Så 2 läggs till listan. Samtidigt faktoriseras 18/2 = 9 rekursivt.
2
Är 9 delbart med 2 Svaret = Nej
Är 9 delbart med 3 Svaret = Ja
def faktorisera(9):
lst = []
for d in range(2,10):
if(18%3 == 0):
lst.append(3)
lst.extend(faktorisera(3))
return(lst)
return [tal]
9 är delbart med 3, så 3 läggs till listan. Samtidigt faktoriseras 9/3 = 3 rekursivt.
3
Här kommer den enbart returnera [3] då det inte finns något att dela 3 med.
def faktorisera(3):
lst = []
for d in range(2,10):
if(tal%d == 0):
lst.append(d)
lst.extend(faktorisera(tal//d))
return(lst)
return [3]
4
Dvs i (2) kommer listan byggas ut med [3], dvs lst = [3,3]
def faktorisera(9):
lst = []
for d in range(2,10):
if(18%3 == 0):
lst.append(3)
lst.extend([3])
return([3,3])
return [tal]
5
Dvs i (1) kommer lst byggas ut med [3,3], dvs lst = [2,3,3]
def faktorisera(18):
lst = []
for d in range(2,10):
if(18%2 == 0):
lst.append(2)
lst.extend([3,3])
return([2,3,3])
return [tal]
Vilket returneras...
def faktorisera(tal):
lst = []
for d in range(2,1+tal//2):
if(tal%d == 0):
lst.append(d)
lst.extend(faktorisera(tal//d))
return(lst)
return [tal]
def primtal(tal):
if(faktorisera(tal)==[tal]):
return True
else:
return False
for n in range(1,20):
print(n,"=",faktorisera(n),primtal(n))
def faktorisera(tal):
lst = []
for d in range(2,1+tal//2):
if(tal%d == 0):
lst.append(d)
lst.extend(faktorisera(tal//d))
return(lst)
return [tal]
def primtal(tal):
if(faktorisera(tal)==[tal]):
return True
else:
return False
for n in range(1,20):
print(n,"=",faktorisera(n),primtal(n))
def faktorisera(tal):
lst = []
for d in range(2,1+tal//2):
if(tal%d == 0):
lst +=[d]
lst += faktorisera(tal//d)
return(lst)
return [tal]
def primtal(tal):
return(faktorisera(tal)==[tal])
for n in range(1,20):
print(n,"=",faktorisera(n),primtal(n))
print(primtal(673549))
def faktorisera(tal):
lst = []
for d in range(2,1+tal//2):
if(tal%d == 0):
lst +=[d]
lst += faktorisera(tal//d)
return(lst)
return [tal]
def primtal(tal):
return(faktorisera(tal)==[tal])
for n in range(1,20):
print(n,"=",faktorisera(n),primtal(n))
print(primtal(673549))