Frage von Rapo123, 39

Primzahlen.exe funktioniert nicht mehr?

Hi leute ,

ich bekomme immer eine Fehlermeldung wenn ich mein Programm ausführe... ich denke eigentlich nicht das es am Quellcode liegt deswegen frage ich euch...

Wäre sehr dankbar wenn ihr mir helfen könntet !

Fehlermeldung:

Das Programm wird aufgrund eines Problems nicht richtig ausgeführt. Das Programm wird geschlossen und Sie werden benachrichtigt, wenn eine Lösung verfügbar ist.

Bemerkung:

Es ein Programm zu darstellung von Primzahlen (von 0-1000).

Entwicklungsumgebung : Qt

Programmiersprache: C++

Quellcode: #include #include

int main()

{

const size_t N = 1001;                  //unsigned int
bool a[N];

a[0] = a[1] = false;                    // können schon am anfang "weggestrichen" werden

for(int i=2; i<N; i++)                  // 0 & 1 sind weggestrichen, deshalb kann er schon bei 2 anfangen
{
    a[i] = true;                        // Anfangs alle noch keine Primzahl
}

// Algorithmus (Eratosthenes)
for( int i=2; i<N/2; i++)               // vielfaches nicht mehr nötig zu teilen
{
    for(int j= 2; j <=N/i; j++)         // N/i ist die Grenze von j / alles über die hälfte geht über das Ziel hinaus
    {
        a[i*j] = false;                 // berechnet die weggestrichenen vielfachen noch mit ...
    }
}

for( int i = 0; i<N; i++)
{
    if(a[i] == true)
        std::cout << i << std::endl;
}
    return 0;

}

Antwort
von Rapo123, 24

Schon gut habs selbst herrausgefunden :D

Kommentar von wobbys ,

Wo lag der Fehler? :)

Kommentar von Rapo123 ,

falls du mein Quellcode verstanden hast:

bei einer bestimmten anzahl von [N]

greift j auf einen Speicherfeld über [N] hinaus

denn N/i ist die grenze von j

daher habe ich "a" mit a[N+1] erweitert

hoffe das ist halbwegs verständlich :D

Kommentar von wobbys ,

Alles klar :) Was verständlich, Danke ^^

Keine passende Antwort gefunden?

Fragen Sie die Community