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
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
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);
}