Primzahl oder nicht



  • Hallo Leute,
    ich hab ein großes Problem!
    Hier die Aufgabenstellung:

    Also ich muss ein Programm erstellen mit Hilfe von Schleifen eine Reihe von Zahlen zu erkennen!

    Also ein kleines Beispiel: mein Zahl lautet 18 und das Programm muss jede Zahl zwischen 1 und 18 (1 und 18 mitrechnen) und sagen ob jene Zahl eine Primzahl ist oder nicht; also ist 1 eine Primzahl oder ist 15 eine Primzahl!

    und es muss herausgeben: wenn eine Primzahl ist dann die Quadratzahl und wenn nicht die Quadratwurzel von der Zahl

    ich weiß nicht wie ich anfange soll, bzw welche schleifen ich nehmen muss, man kann die schleifen verschachteln

    hoffe mir kann jemand helfen!



  • Ich würde eine for-Schleife nehmen, da du ein definiertes Ende hast.
    Und ja, schleifen kann man verschachteln.

    Überleg dir erstmal, wie du den Primzahlentest für eine Zahl machst.
    Dann kannst du die Quadratzahl/wurzel berechnen.

    Darum kannst du dann eine Schleife machen, die dann bei 1 anfängt.

    Hier im Forum gibt es einige Primzahlprogramme. Musst du mal suchen.



  • Deine Antwort war hilfreich aber auch nicht hilfreich!

    ich probier es einmal mit einer for - schleife!

    Danke!



  • Wenn deine Frage ungenau ist, ist es die Antwort auch.

    Hausaufgaben werden hier nicht gemacht.

    Zeig was du hast, dann können wir dir auch genau helfen.

    Allerdings gehen wir auch davon aus, dass du die Anfängerprogramme wie "Hallo Welt!", "Hallo name", "Zähle bis 10" und "Addiere die Zahlen von 1 bis n" schon gemacht hast.



  • So mit der for - Schleife klappt es einigermaßen,

    nun hab ich eine konkrete Frage, wie kann ich es schreiben, das 1 mit allen Zahlen, sagen wir bis 18 durchdividiert wird und dann kommt 2 und die wird mit mit allen Zahlen dividiert!

    darauf komme ich noch nicht!



  • 2 for-schleifen



  • Hier habe ich mal die langsamste aller Primzahlentest geschrieben, vielleicht hilft dir diese Funktion beim Lösen deines Problems. Schnellere Algos, wie das Sieb des Eratosthenes, ermitteln gleich mehrere Primzahlen auf einmal. Habe ich aber noch nicht implementiert.

    bool isPrim(int value)
    {
        if (value <= 1)
        {
            return false;
        }
    
        for(int i = 2; i < value; ++i)
        {
            if (value % i == 0)
            {
                return false;
            }
        }
        return true;
    }
    

Log in to reply