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 :

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;
                }
    }
}
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