+1 Daumen
1,9k Aufrufe

Aufgabe:

Schreiben Sie eine Prozedur, die eine vorgegebene gerade natürliche Zahl n als Summe von zwei Primzahlen schreibt. (in SageMath)


Problem/Ansatz:

Hallo zusammen, kann mir jemand bei der Aufgabe helfen? Ich weiß leider nicht, was schlau ist beim Anfang. Eine bel. Variable nehmen und dann mit einer Schleife zerlegen? Und dann...?

Avatar von

Ja, das ist doch schon ein guter Anfang. Vielleicht möchtest du \(k+(n-k)=n\) verwenden?

Du meinst jetzt als meine variable? Damit ich sie direkt als Summe darstellen kann?


Und wie mache ich das mit der Schleife? Eine while Schleife die sich so lange wiederholt bis beides Primzahlen sind?

Du lässt die Schleife über k laufen, den verwendeten Schleifenbefehl kannst du aus mehreren sinnvollen Möglichkeiten auswählen, ebenso einen dazu passenden Schleifenstart. Eine der Abbruchbedingungen hast du schon genannt, allerdings musst du noch bedenken, dass die Goldbachsche Vermutung vielleicht doch nicht gilt.

Der schleifenstart ist doch dann einfach bei den Primzahlen bis unendlich, richtig?

Aber wenn die goldbachsche vermutung nicht gilt, dann möchte ich trotzdem eine Zerlegung in eine Summe von Zahlen. Das heißt ich muss einen return mehr einbauen, dass wenn die Primzahlen durchlaufen sind, es eine andere Summe gibt (?)

@Sarah: Deine Frage wurde in die Informatiklounge verschoben. Du kannst hier mit deinem bisherigen Passwort und Namen einloggen.

Also mache ich jetzt eine for schleife über k:

Mit n=k+(n-k)

For k in (??) :

If k. Is_prime & n-k.is_prime

Else: return

Print k, n-k

So?

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
0 Antworten
0 Daumen
1 Antwort

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community