Python :: Aufgabe #294 :: Lösung #1
2 Lösungen
#294
Goldbachsche Vermutung (binär)
Fortgeschrittener - Python
von JKooP
- 13.10.2020 um 08:32 Uhr
Die Goldbachsche Vermutung besagt, dass jede gerade Zahl größer 2 die Summe zweier Primzahlen ist.
1. Schreibe eine Funktion/Methode, die jeweils ein mögliches Primzahlenpaar bis zur Zahl 1000 ausgibt.
Beispiele:
4 = 2 + 2 -> (2, 2)
6 = 3 + 3 -> (3, 3)
8 = 3 + 5 -> (3, 5)
Duplikate durch Vertauschung wie z.B. (3, 5) -> (5, 3) sollen verhindert werden.
2. Schreibe eine Funktion/Methode, die alle mögliche Primzahlenpaare bis zur Zahl 1000 ausgibt.
Beispiele:
10 = 3 + 7 = 5 + 5 -> [ (3, 7), (5, 3) ]
14 = 3 + 11 = 7 + 7 -> [ (3, 11), (7, 7) ]
Viel Spaß
1. Schreibe eine Funktion/Methode, die jeweils ein mögliches Primzahlenpaar bis zur Zahl 1000 ausgibt.
Beispiele:
4 = 2 + 2 -> (2, 2)
6 = 3 + 3 -> (3, 3)
8 = 3 + 5 -> (3, 5)
Duplikate durch Vertauschung wie z.B. (3, 5) -> (5, 3) sollen verhindert werden.
2. Schreibe eine Funktion/Methode, die alle mögliche Primzahlenpaare bis zur Zahl 1000 ausgibt.
Beispiele:
10 = 3 + 7 = 5 + 5 -> [ (3, 7), (5, 3) ]
14 = 3 + 11 = 7 + 7 -> [ (3, 11), (7, 7) ]
Viel Spaß
#1
von Marty3000 (680 Punkte)
- 04.11.2020 um 09:11 Uhr
Python-Code
def get_prim(last: int): prim = [2] for i in range(prim[0], last): is_prim = True for p in prim: if is_prim and i % p == 0: is_prim = False if is_prim: prim.append(i) return prim def goldbach(last: int, print_all: bool): if print_all: print("Alle Primzahlpaare") else: print("Nur ein Primzahlpaar") all_prim = get_prim(last) for i in range(4, last + 1, 2): txt: str = str(i) done: bool = False for p in all_prim: if not done and p <= i / 2 and all_prim.count(i - p) == 1: txt += " = %d + %d" % (p, i-p) done = not print_all print(txt) if __name__ == '__main__': goldbach(1000, False) goldbach(1000, True)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1