Bonjour à tous,

je cherche à créer un programme en C++, qui affiche les n premiers nombres premiers, n étant donné par l'utilisateur. Par exemple :

Entrez un nombre : 3
Les 3 premiers nombres premiers sont :
2, 3, 5.

J'ai un problème lors de l'exécution de mon programme. Je rentre un nombre et le prog se ferme. (Je développe sous Dev C++). Aucune erreur n'est détectée lors de la compilation.
Code source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
#include <iostream.h>
using namespace std;
 
bool estPremier (unsigned int nombre);
int main()
{
    int nombre,compt,n;
    //nombre : variable dédiée aux tests de primarité
    //n : nombre saisi au clavier
    //compt : compteur de nombres de boucles
 
    cout << "Entrez un nombre : " ;
    cin >> n;
 
    //on initialise les variables avant d'entrer dans la boucle
    nombre = 2;
    compt = 1;
 
    //on ne peut pas afficher 0 nombre premier
    if (n == 0) cout << "Erreur !";
    else {
         cout << "Les " << n << " premiers nombres premiers sont :" << endl;
         do {
             if (compt == n) cout << nombre << ".";
             else {
                  if (estPremier(nombre)) cout << nombre << ", ";
                  nombre++;
                  compt++;
                  }
            }
         while (compt <= n);
         }
    return 0;
}
 
 
//Fonction qui retourne la primarité d'un nombre
bool estPremier(unsigned int nombre)
{
  if (nombre == 2) return true;
  for (int i = 2; i <= (nombre - 1); i++)
  {
    int modulo = (nombre % i);
    if (modulo == 0) return false;
       else return true;
  }
}
Pourriez-vous me donnez une piste qui pourrait me faire avancer dans la résolution de mon programme ?
Merci beaucoup.

Laurent