Python :: Aufgabe #297 :: Lösung #2

2 Lösungen Lösungen öffentlich
#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ß
#2
vote_ok
von Klaus (1960 Punkte) - 10.12.2020 um 12:24 Uhr
Quellcode ausblenden Python-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1988454

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.