bonjour a tous ,
Voila j'ia un exercice a faire qui consiste a créer une fonction qui affiche tous les nombre premier inferieur a un nombre n (entré par l'utilisateur )
voila mon code :
Quand j'execute mon programme il ne me donne que quelque nombre premier , si quelqu'un peut m'aider a trouver le probleme ca serait cool , merci d'avance
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 #include <stdio.h> #include <stdlib.h> #include <math.h> int premier (int x) { int i,y; y=sqrt(x)+1; if (x%2==0) { return 0; } else { for (i = 3 ; i < y; i+=2) if (y % i != 0) { return 0; } else { return 1; } } } // Fonction qui affiche les nombres premiers inferieur à n int premier2 (int x) { int j,a; // Boucle permettant de scanner les nombres entre 0 et n for (j=1; j<x;j++) { a = premier(j); // Affichage des nombres si ils sont premiers if (a == 1) { printf("%d ",j); } } printf("\n\n"); } int main(int argc, char *argv[]) { 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 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(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); system("PAUSE"); break; } 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 = premier2 (n); system("PAUSE"); break; } } }
Partager