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

5 Lösungen Lösungen öffentlich
#335

Primfaktorzerlegung und Potenzschreibweise

Fortgeschrittener - Python von JKooP - 03.04.2021 um 09:53 Uhr
1. Schreibe eine Methode/Funktion, die jede Integer- Zahl in ihre Primfaktoren zerlegen kann
und das Ergebnis als Array/Liste zurückgibt.

Beispiel:
24 = 2*2*2*3

Lösung:
a = { 2, 2, 2, 3 }

2. Schreibe eine weitere Methode/Funktion, die die Werte des Arrays aus Aufgabe 1
in Potenzschreibweise überführt und auf dem Bildschirm ausgibt.
Das Zeichen zur Darstellung kann je nach Vorliebe/Programmiersprache variieren (^, **, h, ...).

Lösung:
2*2*2 = 2^3
3 = 3^1

Ausgabe:
2^3 * 3^1

Viel Spaß
#2
vote_ok
von satn1241 (3090 Punkte) - 07.04.2021 um 11:39 Uhr
Quellcode ausblenden Python-Code
zahl = 27861786873687128719827
zahl_text = str(zahl)
# primfaktorliste mit Duplikaten
i = 2
liste = []
while i <= zahl:
    if zahl % i == 0:
        liste.append(i)
        zahl = int(zahl / i)
        i = 1
        print(liste)
    i += 1

# Primfaktoren ohne Duplikate
liste2 = list(set(liste))
liste2.sort()

# Anzahl Primfaktoren
anzahl = []

for element in liste2:
    i = 0
    for e in liste:
        if element == e:
            i += 1
    anzahl.append(i)

# Ausgabe
print(zahl_text, "=")
for i in range(0, len(liste2) - 1):
    print(liste2[i], "^", anzahl[i], "* ", end="")
print(liste2[len(liste2) - 1], "^", anzahl[len(liste2) - 1])

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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