Bonjour,

voila mon problème : j'ai monté un petit programme qui me dit si un nombre est premier ou pas. il fonctionne très bien pour des nombres jusqu'à 10 chiffres mais meme les nombre à 10 chiffres ne sont pas tous pris a partir d'environ 3000000000. je sais qu'il s'agit d'un problème de déclaration de variable, mais meme en les métant en long unsigned, ça ne change pas le problème.

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
#include <stdio.h>
 
int p,x,n;
 
float r;
 
int main()
{
     printf("-----------------------------\nVOTRE NOMBRE EST-IL PREMIER ?\n-----------------------------\n");
     printf("NOMBRE A IDENTIFIER : ");
     scanf("%d", &n);
     r=sqrt(n);
     p=1;
     for(x=2;x<=r;x++)
     {
                      if(n%x == 0)
                      {
                             printf("\nNON, %d N'EST PAS PREMIER", n);
                             p=0;
                             break;
                      }
     }
     if (p == 1)
     {
           printf("\nOUI, %e EST PREMIER", n);
     }
     fflush(stdin);
     getchar();
     return 0;
}