Les nombres premiers :programme c
saadinto
-
cchristian Messages postés 928 Statut Membre -
cchristian Messages postés 928 Statut Membre -
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];
}
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];
}
A voir également:
- Les nombres premiers :programme c
- Code binaire des nombres - Guide
- Nombres faciles - Télécharger - Outils professionnels
- Trouver un numéro avec les 6 premiers chiffres - Forum Freebox
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Dans ce fichier, réalisez le graphique xy (nuage de points ou dispersion), avec les x en abscisse. dans le graphique, les points dessinent un nombre. lequel ? - Forum Bureautique
2 réponses
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
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);
}