2017-10-22 1 views
0

Ich schrieb ein C++ - Programm, das alle Primzahlen niedriger als n druckt, aber das Programm stürzt während der Ausführung ab.Drucken Sie alle Primzahl niedriger als n in C++ (Dateiabsturz)

#include <iostream> 

using namespace std; 

bool premier(int x) { 
    int i = 2; 
    while (i < x) { 
     if (x % i == 0) 
      return false; 
     i++; 
    } 
    return true; 
} 

int main() { 
    int n; 
    int i = 0; 
    cout << "entrer un entier n : "; 
    cin >> n; 
    while (i < n) { 
     if (n % i == 0 && premier(i)) 
      cout << i; 
     i++; 
    } 
    ; 
} 
+1

Das richtige Werkzeug, um dies zu untersuchen, ist ein Debugger. – chris

+6

Sie führen 'n% i' mit 'i == 0' –

+0

aus, beginnen bei 'i = 1' statt –

Antwort

1

Wie Igor wies darauf hin, i Null das erste Mal ist, wenn n%i erfolgt. Da Sie nur Primzahlen wollen und die kleinste Primzahl 2 ist, empfehle ich Ihnen, i zu 2 statt 0 zu initialisieren.

Sie möchten alle Primzahlen kleiner als n drucken und haben eine Funktion, die Primalität bereits zu prüfen.

Gerade

while (i < n){ 
    if ( premier(i) == true) 
     cout<<i; 
    i++; 
} 

Und während des Druckens, fügen Sie einen gewissen Charakter der Zahlen zu trennen inorder, um sie zu unterscheiden, wie

cout<<i<<endl; 

P. S: Ich glaube, Sie nennen das ein C++ Programm. Kein Skript.

Edit: This könnte Sie interessieren.

Verwandte Themen