Bonjour,

Commençant en C, j'ai voulu m'exercer en créant un petit programme qui est censé faire les choses suivantes :

Demander un nombre spécifique.
Faire la liste des nombres de 3 à ce nombre et vérifier s'ils sont premiers.
Enregistrer tous les nombres premiers dans un tableau.
Afficher les nombres premiers trouvés.

Maintenant, voici le code que j'ai créé, dans l'espoir que cela marche :
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 <stdio.h>
#include <stdlib.h>
 
main()
{
      /* Je déclare toutes les variables. Le tableau a 1000 emplacements pour être "large". */
      int nombre, i, b=1, a=0, premier[1000], chiffre;
      /* Saisie du nombre... */
      printf("Saisir un nombre : ");
      scanf("%d",&chiffre);
      fflush(stdin);
      /* Je crée une boucle de 3 jusqu'au nombre rentré (non inclu) pour les tester */
      for (nombre=3;nombre<chiffre;nombre++)
      {
          /* Une autre boucle afin de tester si le nombre est premier. 
           * Je prends tous les chiffres de 2 à "nombre à tester" et 
           * je regarde leur reste de division. S'il y en a un qui a 
           * pour reste 0, la variable b (comme booléen) passe à 0. 
           * Sinon, elle reste à 1. 
           */
          for (i=2;i<(nombre-1);i++)
          {
              if ((nombre%i)==0)
              {
                 b=0;
              }
          }
          /* Si le nombre est premier, je le rentre dans le tableau. 
           * J'incrémente ensuite le "numéro de case" du tableau 
           * pour le prochain nombre premier. 
           */
          if (b==0)
          {
             premier[a]=nombre;
             a++;
          }
          b=1;
      }
      /* J'affiche tous les membres du tableau... */
      for (i=0;i<=a;i++)
      {
          printf("\n%d est un nombre premier.\n",premier[a]);
      }
      printf("\n\n\n");
      system("pause");
      return 0;
}

Tout me semble juste, et pourtant.

Voici un aperçu de ce que cela me donne :

Saisir un nombre : 7

13959380 est un nombre premier.

13959380 est un nombre premier.

13959380 est un nombre premier.



Appuyez sur une touche pour continuer...
A première vue, je dirais qu'il me ressort le numéro mémoire du tableau...

Je suis perdu !

PS : je suis sur Windows 2000 Pro, utilisant Dev-C++.