Bonsoir à toutes et à tous,
Je suis actuellement en train de bloquer () sur un programme, avec des fonctions optimisées, qui devrait m'afficher ceci :
- Qui détermine si un nombre est premier ou non,
- Afficher les nombres premiers inférieur à un N,
- Afficher les N premiers nombres premiers.
Voici mon programme qui stagne :N est saisie par l'utilisateur
Je galère, je n'avance pas.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> int premier_1(int n) { int d,b; b = 1; if (n == 0 || n == 1) { b = 0; } else if (n == 2) { b = 2; } if (b == 0) { return 0; } else if (b == 2) { printf("2\n"); } else { if (n%2==0) { return 0; } for (d = 3; d <= sqrt (n); d = d + 2) { if (n%d==0) { return 0; } return 1; } } int premier_2(int x) { int j,a; if(x == 0 || x == 1) { return 0; } // Boucle permettant de scanner les nombres entre 0 et n for (j = 1 ; j <= x ; j = j + 1) { a = premier_1(j); // Affichage des nombres si ils sont premiers if (a == 1) { printf("%d\n",j); } } printf("\n"); } void affiche (int nmax) { int i; for (i = 0; i <= nmax; i++) if(premier_1(i)==1) printf("%d\n",i); // 25 lignes -> étapes attente } int main() { int c; // Menu de sélection du programme printf("******** Exercire I ********\n\n"); printf("1. Tester si le nombre saisi est premier\n"); printf("2. Afficher les nombres premiers inferieurs a un nombre n\n"); printf("3. Afficher les n premiers nombres premiers\n"); printf("0. Quitter\n"); scanf("%d",&c); int n,y; switch (c) { case 2 : { printf("\n******** Afficher les nombres premiers inferieurs a un nombre n ********\n\n"); // Saisie de la valeur par l'utilisateur printf("Saisissez n : "); scanf("%d",&n); printf("\n"); y = premier_2(n); getch(); break; } case 1 : { printf("\n******** Tester si le nombre saisi est premier ********\n\n"); // Saisie de la valeur par l'utilisateur printf("Saisissez n : "); scanf("%d",&n); - y = premier_1(n); // Affichage du message (traduction de la réponse de la fonction if (y == 0) { printf("\n%d n'est pas premier\n\n",n); } else { printf("%d est premier !!\n",n); getch(); break; } } } }
Merci à tous ceux qui prendront le temps de lire ma discussion.
Nir3x![]()
Partager