Rechercher : dans
Par :

Les nombres premiers :programme c

Dernière réponse le 29 mar 2008 à 05:06:16 saadinto, le 28 mar 2008 à 19:17:01 
 Signaler ce message aux modérateurs

Bonjour tt le monde,
j'aimerai savoir si ce code est correct ,l utilisateur tappe un nombre n et le programme doit afficher le n-ieme nombre premier correspendant
voila le code :


#include<stdio.h>
#include<conio.h>
int fonction2(int n);
int fonction1(int x);


void main()

{
int n,nombrepremier;
puts("tappez un entier:");
scanf("%d",&n);
if(n>0) //pour tester le nombre entré par l utilisateur
{
nombrepremier=fonction1(n);
printf("le %d nombre premier est :%d",n,nombrepremier);
}
}
//la fonction ki renvoi un int (0-->nombre non premier,autre nombre-->nombre premier)

int fonction1(int x)
{
int y=2,booleen;

while(y*y<=x)
{
if(x%y!=0)
{y++;
booleen=1;
}
else booleen=0;
}

return booleen;
}
//la fonction 2 ki retourne le n ieme nombre premier correspendant

int fonction2(int n)
{
int j=0,i=1,tableau[]={0};

while(j<n)
{
if( foncyion1(i) )
{
j++;
tableau[j]=i;
}
i++;
}
return tableau[j];
}

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « les nombres premiers :programme c » dans :
Vérifier si un nombre entier est un nombre premier en C Voir Définition nombre premier Algorithme 1 : les diviseurs compris entre 2 et N-1 seront testés Algorithme 2 : les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs Algorithme 3 : les diviseurs impairs jusqu'à la...
Exercice assembleur x86 nombre premier VoirIntroduction Notions abordées dans cet exercice Enoncé Rappel Corrigé Explication Introduction Ce petit exercice d'assembleur vise les architectures x86 (Processeurs Intel et Amd 32 bits) et utilise la syntaxe de Nasm, un assembleur...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

mype, le 29 mar 2008 à 04:27:41

Il suffit que tu le testes pour savoir si le code est bon...

Répondre à mype

2

 cchristian, le 29 mar 2008 à 05:06:16

Bonjour,

J'ai un peu remanié ton code, comme tu peux le constater, teste-le et dis-moi ce que tu en penses, moi là j'en ai mare. Je l'ai testé ça semble aller, à toi maintenant, il est trop tard (ou trop tôt) pour continuer.

//2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 et 97

int main() 
{ 
//Initialise les variables.
  int n = 0,  bool_1er = 0, nombre_1er_voisin = 0; 
  int ind_prog_m = 0; 
  signed int borne_m    = 2147483646;

//Pour boucler sur la fonction à concurrence de la valeur -1 saisie.
  while (n != -1)
     {
cout <<"\n 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 et 97";
      puts  ( "\n\n tappez un entier: " ); 
      scanf ( "%d", &n ); 
      if ( n  >  0  ) //pour tester le nombre entré par l utilisateur 
        { 
            bool_1er        =       fonction1 ( n );
            if ( bool_1er  == 0 && n != 1)
             {
                printf ("\n %d n'est pas un nombre premier ", n); 
//                borne_m    = 2147483646;
                ind_prog_m = 1;
                nombre_1er_voisin   =       fonction2 ( n, ind_prog_m, borne_m ); 
                printf ("\n %d est le nombre premier immediatement > voisin de: %d", "
                          "nombre_1er_voisin, n);
                ind_prog_m = -1;
                nombre_1er_voisin   =       fonction2 ( n, ind_prog_m, borne_m ); 
                printf ("\n %d est le nombre premier immediatement < voisin de: %d", "
                          "nombre_1er_voisin, n); 
            }
          else
           {
             if ( n == 1)
              { printf ("\n 1 n'est ni premier ni composé");}
            else
              { printf ("\n %d est un nombre premier ", n); }
          }
        }
     else
       {
          if ( n  < -1  )
           {
             printf ("\n Nombre saisi incoherent:%d", n);
           }
        }
     }
return (0);
} 
//la fonction ki renvoi un int (0-->nombre non premier,autre nombre-->nombre premier) 

 int fonction1    (int x) 
  { 
   int y = 0,  booleen; 

   for ( y = 2;   y < x;   y++ )
      { 
       if  ( (x % y) == 0)  { booleen  =  0; break; }
      else                       { booleen  =  1; } 
      } 
   if ( x   ==  2 )          { booleen  =  1; }

   return booleen; 
 } 

//la fonction 2 ki retourne le n ieme nombre premier correspendant 
 int fonction2   (int n, signed  int ind_prog, int borne) 
 { 
   int j = 0; 
   for (  j  = n + ind_prog;  j < borne; j = j + ind_prog ) 
      { 
       if ( fonction1 (j) )  
         { 
          break; 
         } 
      } 
  return (j); 
 }

Cordialement.

Cchristian.

Répondre à cchristian