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

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

def check_prime(number):
    for index in range (2, number//2 + 1):
        if number % index == 0:
            return False
    return True

prime_numbers = []
for index in range (2, 1000):
    if check_prime(index):
        prime_numbers.append(index)

solution = {}
for number in range (4, 1001, 2):
    solution[number] = []
    for summand_1 in prime_numbers:
        for summand_2 in prime_numbers:
            if summand_1 + summand_2 == number and sorted([summand_1, summand_2]) not in solution[number]:
                solution[number].append(sorted([summand_1, summand_2]))

input('Taste für Teilaufgabe 1 drücken ...')

print('Teilaufgabe 1\n-------------')
for key in solution:
    print(f'{key:4.0f} --> {rnd.choice(solution[key])}')

input('\n\nTaste für Teilaufgabe 2 drücken ...')

print('\nTeilaufgabe 2\n-------------')
for key in solution:
    print(f'{key:4.0f} --> {solution[key]}')

Kommentare:

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

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

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.