Programme nombre premier
etienne.raoul
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
ghuysmans99 Messages postés 2496 Date d'inscription Statut Contributeur Dernière intervention -
ghuysmans99 Messages postés 2496 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai écrit l'algorithme d'un programme qui donne tous les nombre premiers inférieur à un nombre n donné par l'utilisateur. J'ai essayé dans le même programme de lui faire sortir le plus grand nombre premier inférieur à n mais apparemment je m'y suis mal prit vu qu'il me sort toujours 0. Je mets ci-dessous mon algorithme. Pourriez vous m'indiquer l'erreur?
#include <stdio.h>
#include <conio.h>
int main()
{ int i,p,n,m;
printf("Veuillez rentrer un nombre entier : " );
scanf("%d",&m);
n=1;
printf("Les nombres premiers inferieurs a %d sont :",m);
while (n<m+1)
{ i=1;
while (i*i<n+1)
{i=i+1;
if (n%i!=0) {p=n;}
else {p=0;
i=n+1;}
}
if (p!=0) {printf(", %d",p);}
n=n+1; }
printf("\n Le plus grand nombre premier inferieur a %d est %d",m,p);
getch();
}
j'ai écrit l'algorithme d'un programme qui donne tous les nombre premiers inférieur à un nombre n donné par l'utilisateur. J'ai essayé dans le même programme de lui faire sortir le plus grand nombre premier inférieur à n mais apparemment je m'y suis mal prit vu qu'il me sort toujours 0. Je mets ci-dessous mon algorithme. Pourriez vous m'indiquer l'erreur?
#include <stdio.h>
#include <conio.h>
int main()
{ int i,p,n,m;
printf("Veuillez rentrer un nombre entier : " );
scanf("%d",&m);
n=1;
printf("Les nombres premiers inferieurs a %d sont :",m);
while (n<m+1)
{ i=1;
while (i*i<n+1)
{i=i+1;
if (n%i!=0) {p=n;}
else {p=0;
i=n+1;}
}
if (p!=0) {printf(", %d",p);}
n=n+1; }
printf("\n Le plus grand nombre premier inferieur a %d est %d",m,p);
getch();
}
A voir également:
- Programme nombre premier
- Programme demarrage windows - Guide
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
3 réponses
Code incompréhensible ... Ca c'est mieux :
Pourquoi affecter n "plus tard" alors que tu peux lui donner une valeur à sa création ? i++; c'est plus clair que i=i+1; ...
C'est normal que ton programme te dise que le plus grand nombre premier < m est 0 vu que tu massacres la variable p lorsque le nombre testé n'est pas premier ...
Affiche le contenu de tes variables à l'intérieur des boucles à l'aide de printf() et tu trouveras tes autres erreurs ...
#include <stdio.h> #include <conio.h> int main() { int i,p,n,m; printf("Veuillez rentrer un nombre entier : " ); scanf("%d",&m); n=1; printf("Les nombres premiers inferieurs a %d sont :",m); while (n<m+1) { i=1; while (i*i<n+1) { i=i+1; if (n%i!=0) p=n; else { p=0; i=n+1; } } if (p!=0) printf(", %d",p); n=n+1; } printf("\n Le plus grand nombre premier inferieur a %d est %d",m,p); getch(); }
Pourquoi affecter n "plus tard" alors que tu peux lui donner une valeur à sa création ? i++; c'est plus clair que i=i+1; ...
C'est normal que ton programme te dise que le plus grand nombre premier < m est 0 vu que tu massacres la variable p lorsque le nombre testé n'est pas premier ...
Affiche le contenu de tes variables à l'intérieur des boucles à l'aide de printf() et tu trouveras tes autres erreurs ...