-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsff.py
50 lines (38 loc) · 1.31 KB
/
sff.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# encoding=utf-8
# det er 50-50 mellom norsk og engelsk fordi ya boi can't decide on a language
from primtall import liste as alleprimtall
# Finner alle primtallsfaktorene til et tall.
def finn_faktorer(tall):
faktorer = []
for primtall in alleprimtall:
if tall % primtall == 0:
faktorer.append(primtall)
return faktorer
# Skal plukke ut den største primtallsfaktoren til tallet.
def finn_største_tall(liste):
størst = 0
for tall in liste:
if tall > størst:
størst = tall
return størst
# Kombinerer de to overnevnte funksjonene.
def finn_sff(tall1, tall2=None):
# Returnerer største faktor til ett tall som vi gir funksjonen.
if tall2 is None:
sff = finn_største_tall(finn_faktorer(tall1))
if sff == tall1:
return 1
else:
return sff
# Returnerer SFF mellom to tall.
# Vi trenger bare faktorene til det ene tallet. Har ikke noe å si om a er større enn b. SFF is eternal.
faktorer = finn_faktorer(tall1)
fellesfaktorer = []
for faktor in faktorer:
if tall2 % faktor == 0:
fellesfaktorer.append(faktor)
# SFF er et produkt av fellesfaktorene. Dette regnes ut under.
sff = 1
for fellesfaktor in fellesfaktorer:
sff *= fellesfaktor
return sff