Python :: Aufgabe #297 :: Lösung #2
2 Lösungen
#297
Periodenlänge von Stammbrüchen
Fortgeschrittener - Python
von JKooP
- 01.11.2020 um 09:50 Uhr
Stammbruch nennt man einen Bruch mit einer 1 im Zähler und einer beliebigen natürlichen Zahl im Nenner.
Schreibe eine Methode/Funktion, mit der man die Periodenlänge eines solchen Bruchs berechnen kann.
Beispiele:
1/4 = 0,25 --> Periodenlänge ist 0, da der Bruch abbricht
1/6 = 0,166666… = 0,16 --> Periodenlänge ist 1, da sich nur die Ziffer 6 wiederholt
1/11 = 0,090909… = 0.09 --> Periodenlänge ist 2, da sich die Ziffern 0 und 9 wiederholen
Viel Spaß
Schreibe eine Methode/Funktion, mit der man die Periodenlänge eines solchen Bruchs berechnen kann.
Beispiele:
1/4 = 0,25 --> Periodenlänge ist 0, da der Bruch abbricht
1/6 = 0,166666… = 0,16 --> Periodenlänge ist 1, da sich nur die Ziffer 6 wiederholt
1/11 = 0,090909… = 0.09 --> Periodenlänge ist 2, da sich die Ziffern 0 und 9 wiederholen
Viel Spaß
#2
von Klaus (1960 Punkte)
- 10.12.2020 um 12:24 Uhr
data = [4, 6, 11, 19, 20, 21, 22, 43]
def period(value):
prime_factors = get_prime_factors(value)
if not prime_factors:
return '0, da der Bruch abbricht'
else:
value = 1
for element in prime_factors:
value *= element
index = 1
while True:
if 10 ** index % value == 1:
return index
else:
index += 1
def get_prime_factors(value):
test_factor = 2
prime_factors = []
while value > 1:
while value % test_factor == 0:
value /= test_factor
prime_factors.append(test_factor)
test_factor += 1
while 2 in prime_factors:
prime_factors.remove(2)
while 5 in prime_factors:
prime_factors.remove(5)
return prime_factors
for element in data:
print(f'1/{element} = {1/element} --> Periodenlänge ist {period(element)}')
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
