Brauche eine kurze Übersetzung



  • {
    7 int zahl , teiler , limit ;
    8
    9 cout << " Obergrenze eingeben : ";
    10 cin >> limit ;
    11 cout < < "\ nPrimzahlen bis " < < limit < < ":\n";
    12
    13 for ( zahl =2; zahl < limit ; zahl ++)
    14 {
    15 teiler = 2;
    16 while ( zahl % teiler != 0) teiler ++;
    17 if ( teiler == zahl ) cout << zahl < < " ";
    18 }
    19 }

    Bräuchte diesen Code in C#



  • cout ersetzt du mit Console.Write(...)
    cin mit int.Parse(Console.ReadLine())

    Für so ein hingekotztes Stück unformatierten Code kannst Du das damit auch selbst machen.



  • µ schrieb:

    cout ersetzt du mit Console.Write(...)
    cin mit int.Parse(Console.ReadLine())

    Für so ein hingekotztes Stück unformatierten Code kannst Du das damit auch selbst machen.

    Also ich möchte Primzahlen anzeigen lassen. Von 2 bis zu einer von mir eingegebenen ZahL! Und am besten mit schleifen.



  • Ja dann ersetzt Du cout und cin. Der Rest bleibt gleich.



  • µ schrieb:

    Ja dann ersetzt Du cout und cin. Der Rest bleibt gleich.

    Alles klar es läuft!

    Aber wofür steht die Variabel "Teiler"?



  • teiler läuft alle kleineren Zahlen als den Primzahlkandidaten zahl durch und wird jedesmal um 1 erhöht, wenn die ganzzahlige Division zahl/teiler einen Rest übrig lässt.
    Bei Primzahlen ist dann die folgende if-Bedingungen erfüllt.

    Es gibt schönere Primzahlalgorithmen. Auch hier im Forum sollte sich einiges dazu finden.



  • µ schrieb:

    teiler läuft alle kleineren Zahlen als den Primzahlkandidaten zahl durch und wird jedesmal um 1 erhöht, wenn die ganzzahlige Division zahl/teiler einen Rest übrig lässt.
    Bei Primzahlen ist dann die folgende if-Bedingungen erfüllt.

    Es gibt schönere Primzahlalgorithmen. Auch hier im Forum sollte sich einiges dazu finden.

    Ich habe leider keine Gefunden..
    Kannst du mir eine empfehlen ?



  • Da Du eine Liste aller Primzahlen bis zu einem Limit möchtest:
    https://de.wikipedia.org/wiki/Sieb_des_Eratosthenes



  • static void Main()
        {
            Console.WriteLine("Obergrenze eingeben : ");
            int limit = int.Parse(Console.ReadLine());
            Console.WriteLine("Primzahlen bis {0}:", limit);
    
            for (int zahl = 2; zahl < limit; zahl++)
            {
                int limit2 = (int)Math.Floor(Math.Sqrt(zahl));
                bool isPrime = true;
                for (int teiler = 2; teiler <= limit2; teiler++)
                {
                    if (zahl % teiler == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
                if (isPrime)
                    Console.Write("{0} ", zahl);
            }
        }
    

    Nimm, das ist für große Zahlen viel schneller.
    Oder gleich ein Sieb.

    Aber wofür steht die Variabel "Teiler"?

    Na man prüft alle Zahlen "teiler" kleiner "zahl" ob sie "zahl" teilen. Wenn ein Teiler gefunden wird ist "zahl" keine Primzahl"


Log in to reply