Primzahlen ermitteln

Mindxxxd

Grünschnabel
Ich habe mich auch mal an einem programm versucht, und bin gescheitert, ich breuchte ebenfalls mal hilfe, es ist so simpel, weil ich es meiner klasse noch vorstellen muss, und die sowieso nix kapieren.
Code:
//Primzahlen.cpp
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>
#include <cstdlib>
using namespace std;

int main()
{
    int Ivier = 0;
    int Ieins = 12;
    int Izwei = 2;
    int Iwdh = 12;
    int Idrei;
    int Ianz;
    int Ifuenf;
    double Dvier;
    double Dfuenf;
    
    
    cout << "Moechten sie eine gewisse Anzahl(1) oder die Primzahlen bis zu einem gewissen Wert(2) ausgegeben haben?" << endl;
    cin >> Ifuenf;
    cout << "Bitte geben sie nun den Gewünschten Wert an: ";
    cin >> Ianz;
    cout << "1\n2\n3\n5\n7\n11" << endl;
    
    if ( Ifuenf == 1 )
    {
    while ( Iwdh <= Ianz )
    {
          Iwdh++;
          Idrei = Ieins / Izwei;
          Dvier = Ieins / Izwei;
          Dfuenf = Idrei / Dvier;
          Ivier++;
          if ( Dfuenf == 1 )
          {
               Ieins++;
               Izwei = 2;
          }
          if ( Dfuenf > 1 )
          {
               if ( Ivier <= Ianz )
               {
                    Izwei++;
               }
               if ( Ivier > Ianz )
               {
                    cout << Ieins << endl;
                    Ieins++;
                    Izwei = 2;
               }
          }
          if ( Dfuenf < 1 )
          {
               if ( Ivier <= Ianz )
               {
                    Izwei++;
               }
               if ( Ivier > Ianz )
               {
                    cout << Ieins << endl;
                    Ieins++;
                    Izwei = 2;
               }
          }
    }
    }
    if ( Ifuenf == 2 )
    {
    while ( Ieins <= Ianz )
    {
          Idrei = Ieins / Izwei;
          Dvier = Ieins / Izwei;
          Dfuenf = Idrei / Dvier;
          Ivier++;
          if ( Dfuenf == 1 )
          {
               Ieins++;
               Izwei = 2;
          }
          if ( Dfuenf < 1 )
          {
               if ( Ivier <= Ianz )
               {
                    Izwei++;
               }
               if ( Ivier > Ianz )
               {
                    cout << Ieins << endl;
                    Ieins++;
                    Izwei = 2;
               }
          }
          if ( Dfuenf > 1 )
          {
               if ( Ivier <= Ianz )
               {
                    Izwei++;
               }
               if ( Ivier > Ianz )
               {
                    cout << Ieins << endl;
                    Ieins++;
                    Izwei = 2;
               }
          }
    }
    }
    
    
    
    
    system("PAUSE");
    return 0;
}


PS: ich bin noch nicht lange hier, und würde mic über schnelle antworten sehr freuen ;)
 
Hi und Willkommen bei tutorials.de :)

Was ist denn genau das Problem?
Wird falsch berechnet (Welche Ergebnisse, statt ..., wo)?
Kommen Fehlermeldungen (Welche, wo)?
...?

Und bitte die Netiquette beachten, Punkt 15.

Gruß
 
das programm gibt die primzahlen von 1 - 11 aus, aber wo es eigentlich anfangen sollte zu rechnen überspringt es den teil, und gibt nur noch aus " Druecken sie eine belibige taste..."
 
Bitte die Netiquette beachten, Punkt 15.

Warum machst du die Berechnungsart eigentlich so ... umständlich?
a) Gehts viel einfacher zu programmieren
b) Erkennst du zurzeit nicht alle Primzahlen, nur bestimmte.

Gehe von zwei weg allen Zahlen durch.
Bei jeder Zahl prüfst du, ob sie durch min. eine der vorigen Primzahlen teilbar ist.
Wenn ja, ist es keine Primzahl.
Wenn nein: Primzahl.

Was bei der Methode vllt. etwas komplizierter ist: Du musst dir alle Primzahlen abspeichern.

Beim Teilbar-prüfen prüfst du nicht auf 1 und nicht auf die Zahl selbst.

Wann du mit dem Berechnen aufhörst (Anzahl oder Zahl-erreicht)
baust du eben in die Schleife ein.

Ich werde den Thread vom Alten abtrennen...
 
Hallo,

wenn du den Quellcode verständlich präsentieren willst, wieso verwendest du dann diese kryptischen Variablenbezeichner (Ieins, Izwei, …)? Benenne die Variablen mit einem aussagekräftigen Namen, sonst kommt man doch als Zuhörer total durcheinander.

Grüße,
Matthias
 
Ich hatte sowas auh mal geschrieben so am Anfang ;)
Leider ist mir die Platte verreckt :( Aber ich glaube ich hatte es mit dem Modulo gelöst der einfach prüft ob irgendeine Zahl durch die Zahl zum Testen geht auser die Zahl zum testen und 1 ;)
Modulo ist das % xD
MfG
 
Zurück