Python :: Aufgabe #335 :: Lösung #5
5 Lösungen

#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ß
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ß
#5

von vMaex (540 Punkte)
- 19.04.2021 um 16:09 Uhr

prim = [2] ar = [] def primCalculation(end): for i in range(3, end): a = 2 isPrimCount = 0 noPrimCount = 0 while a < i: rest = i % a if rest != 0: a = a + 1 isPrimCount = isPrimCount + 1 else: noPrimCount = noPrimCount + 1 a = a + 1 if noPrimCount == 0 and isPrimCount > 0: prim.append(i) def divide(number): primCalculation(number) y = 0 for i in prim: next = False stop = False while type(y) == int and next is False and stop is False: y = number / i if str(y).endswith('.0') and stop is False: ar.append(i) y = int(y) number = y next = False if i > y: stop = True else: y = y * i y = int(y) next = True print(ar) # 1. Ausgabe potenz() # 2. Ausgabe def potenz(): inhalt = [] finalString = '' for i in ar: if i not in inhalt: inhalt.append(i) for i in inhalt: if ar.count(i) > 1: if finalString == '': finalString += str(i) + ' ^ ' + str(ar.count(i)) else: finalString += ' + ' + str(i) + ' ^ ' + str(ar.count(i)) else: if finalString == '': finalString += str(i) + ' ^ 1' else: finalString += ' + ' + str(i) + ' ^ 1' print(finalString) divide(50)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1