Mon programme compilé sous Dev C++ fonctionne jusqu'à 40, à 41, un message apparait comme quoi "Nbpremier.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
Voici le programme :
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 #include <stdio.h> #include <math.h> #include <conio.h> int main() { int GrandeBoucle; /* Nombre étudié*/ int IndiceNombrePremier; /* Indice du nombre premier */ int IndiceDernierNbPremierTrouve; /* Indice du dernier nombre premier trouvé */ int NOMBREMAX; /* Nombre étudié */ int TABLEAU[IndiceNombrePremier]; /* Liste des J-1 nombres premiers */ double NbEuclide; /* Nombre du crible d'Euclide */ printf(" ******************************************************************************\n"); printf(" * *\n"); printf(" * PROGRAMME DE DETERMINATION DE TOUS LES NOMBRES PREMIERS DE 2 A N *\n"); printf(" * *\n"); printf(" ******************************************************************************\n"); printf("\n\n\n\n\nEntrez une valeur N positive et superieure a 5 : "); scanf("%d",&NOMBREMAX); TABLEAU[0]=2; TABLEAU[1]=3; printf("\n\nListe des nombres premiers jusqu'a %d : %4d%4d",NOMBREMAX,TABLEAU[0],TABLEAU[1]); IndiceDernierNbPremierTrouve=1; for (GrandeBoucle=5;GrandeBoucle<=NOMBREMAX;GrandeBoucle+=2) { NbEuclide=floor(sqrt(GrandeBoucle)); IndiceNombrePremier=0; while(GrandeBoucle%TABLEAU[IndiceNombrePremier]!=0 && TABLEAU[IndiceNombrePremier]<=NbEuclide) { IndiceNombrePremier++; if (TABLEAU[IndiceNombrePremier]>NbEuclide) { IndiceDernierNbPremierTrouve=IndiceDernierNbPremierTrouve+1; TABLEAU[IndiceDernierNbPremierTrouve]=GrandeBoucle; printf("%4d",TABLEAU[IndiceDernierNbPremierTrouve]); } } } getch(); return 0; }
Partager