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