Programme nombre premier
etienne.raoul
Messages postés
10
Statut
Membre
-
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
- Message programmé iphone - Guide
- Programme bonjour ✓ - Forum Logiciels
- 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 ...