Primzahlen zwischen 0 und 100 in Pseudocode

  • Ist zwar nicht direkt eine Technik Frage aber dafür eine Kopfnus im technischen Umfeld:


    Hat jemand (m/w) eine tolle Idee/Lösungsvorschlag für folgende Aufgabe:


    Verfassen Sie ein kurzes Programm in Pseudocode, welches alle Primzahlen zwischen 0 und 100 ausgibt :) ... ... ich freue mich über Lösungsvorschläge, da ich schon 3-4 verschiedene Ansätze ausgearbeitet habe und jetzt total verwirrt bin *fg*.... daher die Frage ;)


    Hier mein derzeit preferiertes Beispiel... ist aber nicht sonderlich berauschend:


    for zahl = 1 to 100
    prim = true
    for teiler = 2 to (zahl/2)
    if zahl%teiler == 0 then
    prim = false
    nächste zahl
    end if
    next
    if prim == true display zahl
    next

  • Hier mal optimiert das ganze: Der größte Teiler, den eine Zahl haben kann, ist seine Wurzel.
    Deswegen ist das die Obergrenze für die Schleife, welche den Teiler hochzählt. Gerade Zahlen
    kann man gleich von vorherein ausklammern, deswegen in der Schleife Teiler = Teiler + 2;


    Code
    for zahl = 1 to 100    prim = true    if zahl < 2 then        prim = false        next zahl    endif    if zahl % 2 == 0 then        prim = false        next zahl    endif    for teiler = 3 to wurzel(zahl)        if zahl % teiler == 0 then            prim = false            break        endif        teiler = teiler + 2    endfor    if prim == true display zahlendfor



    in C/C++ sieht das dann so aus:


    Das ist schon recht performant, aber der schnellste Algorithmus für kleinere
    Zahlen ist das Sieb des Eratosthenes.


    Bereitet euer Frühstück und esst tüchtig, denn noch heute Abend speisen wir in der Hölle!

    7 Mal editiert, zuletzt von merciless ()

  • jo ich hätt das auch so gemacht wie merciless... du kannst das ganze ja auch bei java überprüfen und deine logik ja mit dem debugger analysieren schritt für schritt

    Das Entscheidende am Wissen ist, dass man es beherzigt und anwendet.


    59972ce1acff63410071a31919.png

  • Mit Rekursion ist aber jede Performance beim Deifel ;)


    Bereitet euer Frühstück und esst tüchtig, denn noch heute Abend speisen wir in der Hölle!

  • Na sauber, kann ich dir bei anderen Hausaufgaben auch noch helfen? :D


    Bereitet euer Frühstück und esst tüchtig, denn noch heute Abend speisen wir in der Hölle!

  • Verbringt ihr eure Tage wirklich damit euch sowas auszudenken?????


    Also das wär mir persönlich ehrlich gesagt viel zu äzend, langweilig und unbefriedigend!


    Aber: Des Menschen Wille ist sein Königreich! also jeder wie er will und kann.

  • Na sauber, kann ich dir bei anderen Hausaufgaben auch noch helfen? :D

    Du zu ein wenig Hilfe sag ich nicht nein ;) aber die nächsten 2 Prüfungen müssten eigentlich gehen, 1st kommt Betriebsführung (Führung, Mitarbeitermotivation etc.) und dann ist schon Wirtschaftsrecht an der Reihe... Wirtschaftsrecht wird auch eine MBA Vertiefung von mir werden... .... und dann, ja dann werde ich wahrscheinlich wirklich wieder etwas Hilffe brauchen, da mit Wirtschaftsökonomie der größte Brocken vor der Tür steht (im Sommer nehme ich mir 3 Wochen frei dafür...) ... ... ... ... ... ....
    Es ist zwar noch ein Weg vor mir aber der Stein mit 47/50 Punkten ist ein gutes Zeichen, danke noch einmal :) !

  • Erstmal gz wuk^^ - aber ich habe eine kleine Anmerkung zum Beitrag von merciless (ja, ich weiß, dass es nicht mehr relevant ist, da zu spät, aber dennoch :) :(


    Auch wenn der Code recht performant ist, erfüllt er leider nicht die gestellte Aufgabe. Wenn ich das richtig sehe, wird die Zahl 2 in diesem Code als nicht prim ausgegeben (da durch 2%2==0 true liefert), was sie allerdings ist. Korrigiert mich, wenn ich irre.

  • Aaah da könntest du Recht haben, ist die mir doch tatsächlich durch die Lappen gegangen :D


    Bereitet euer Frühstück und esst tüchtig, denn noch heute Abend speisen wir in der Hölle!