Problem mit Programm



  • Hallo,

    ich hab ein Programm geschrieben, das eig die Primzahlen bis zu einem vom Benutzer eingegebenen Wert anzeigen soll, tja leider zeigt es jetzt alle Zahlen bis zu diesem Wert an.

    Was hab ich hier verbockt?

    #include <iostream>
    using namespace std;
    
    int main()
    {
    long long int Zahl=1, aktTeiler=0, Grenzwert;
    int anzTeiler=0;
    cout<<"Guten Tag!\nDieses Programm zeigt Primzahlen bis einer von ihnen eingegebenen Zahl an.\nIhre Zahl ist:";
    cin>>Grenzwert;
    for(int i=1;i<Grenzwert;i++)
    {
    Zahl++;
    do
    {
    aktTeiler++;
    if (Zahl%aktTeiler==0)
    {anzTeiler++;}
    }
    while (aktTeiler<=Zahl);
    if (anzTeiler==2)
    {cout<<Zahl<<"\n";}
    }
    
    return 0;
    }
    

    Was ist da falsch?
    Ich habs genau gecheckt, aber find den Fehler nach langem hin && her immer noch nicht.



  • Vielleicht solltest du den aktuellen Teiler bei jeder Zahl wieder bei 0 beginnen lassen



  • und die Anzahl der Teiler genauso



  • ou ok



  • int main()
    {
    long long int Zahl=1, aktTeiler=0, Grenzwert;
    int anzTeiler=0;
    cout<<"Guten Tag!\nDieses Programm zeigt Primzahlen bis einer von ihnen eingegebenen Zahl an.\nIhre Zahl ist:";
    cin>>Grenzwert;
    for(int i=1;i<Grenzwert;i++)
    {
    Zahl++;
    aktTeiler=0;
    anzTeiler=0;
    do
    {
    aktTeiler++;
    if (Zahl%aktTeiler==0)
    {anzTeiler++;
    }}
    while (aktTeiler<=Zahl);
    if (anzTeiler<=2)
    {cout<<Zahl<<"\n";
    continue;
    }}
    return 0;
    }
    

    Jetzt gehts 😋 :p 🙄



  • Kennste Leerzeichen? Die helfen manchmal 🙄



  • cooky451 schrieb:

    Kennste Leerzeichen? Die helfen manchmal 🙄

    Das erinnert mich an den Lautsprecheransager in Darmstadt, der statt "Darmstadt" immer
    "Dammstadt" durchgesagt hat, und der angehalten worden ist, das "R" deutlicher auszusprehen.
    Er hat sich redlich bemüht, das Ergebnis war "Dammstart".
    Soll heißen, wenn das Verständnis für Leerzeichen nicht da ist, hilft ein Einfordern auch nix.

    //Dammstart-Code
    int main ( )
    {
    long long int Zahl = 1, aktTeiler = 0, Grenzwert;
    int anzTeiler = 0;
    cout << "Guten Tag!\nDieses Programm zeigt Primzahlen bis einer von ihnen eingegebenen Zahl an.\nIhre Zahl ist:";
    cin >> Grenzwert;
    for ( int i = 1 ; i < Grenzwert ; i ++ )
    {
    Zahl ++;
    aktTeiler = 0;
    anzTeiler = 0;
    do
    {
    aktTeiler ++;
    if ( Zahl % aktTeiler == 0 )
    { anzTeiler ++;
    } }
    while ( aktTeiler <= Zahl );
    if ( anzTeiler <= 2 )
    { cout << Zahl << "\n";
     continue;
    } }
    return 0;
    }
    


  • volkard schrieb:

    // Nicht noch einmal, davon bekommt man Augenkrebs.
    


  • volkard schrieb:

    Er hat sich redlich bemüht, das Ergebnis war "Dammstart".

    Dammstart ist mir immer noch lieber als Darmstart!


Anmelden zum Antworten