A voir également:
- Écrire un algorithme qui affiche les 100 nombres premiers
- Ecrire en gras sur whatsapp - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
5 réponses
Je remarque que tu essaie de tester si ts les nombres allant de 2à 500 sont premiers, en divisant chacun par ts les entiers inferieure à lui et en jouant sur le reste obtenu;
Mais pr le cas n=4, ton algo ne marche pas; ce que je te propose c'est déja de faire les tests seulement sur les entiers impairs compris entre 3 et 500(premiere boucle pour), ensuite pour un entier i, donné, pour savoir s'il est premier, tu le divise simplement par tous les entiers inférieures ou égaux à sa racine carrée(2bde boucle);si dans la2nde boucle, tu obtient un reste de division nul, alors tu peux sortir de la boucle sachant que le nombre correspondant dans la premiere boucle n'est pas premier, par contre si au terme de la 2nde boucle, aucun reste des divisions n'est nul, alors le nbre correspondant dans la premiere boucle est premier.) J'espere t'avoir assez aidé, essaie d'ecrire dabord l'algo correspondant et tu ns l'envoie
Mais pr le cas n=4, ton algo ne marche pas; ce que je te propose c'est déja de faire les tests seulement sur les entiers impairs compris entre 3 et 500(premiere boucle pour), ensuite pour un entier i, donné, pour savoir s'il est premier, tu le divise simplement par tous les entiers inférieures ou égaux à sa racine carrée(2bde boucle);si dans la2nde boucle, tu obtient un reste de division nul, alors tu peux sortir de la boucle sachant que le nombre correspondant dans la premiere boucle n'est pas premier, par contre si au terme de la 2nde boucle, aucun reste des divisions n'est nul, alors le nbre correspondant dans la premiere boucle est premier.) J'espere t'avoir assez aidé, essaie d'ecrire dabord l'algo correspondant et tu ns l'envoie
Bonjour,
Oui, en C c'est possible comme dans tous les langages. Il y a plusieurs façons de faire.
Tu envisages de le faire comment ? Poste ton programme si tu veux qu'on t'aide.
Oui, en C c'est possible comme dans tous les langages. Il y a plusieurs façons de faire.
Tu envisages de le faire comment ? Poste ton programme si tu veux qu'on t'aide.
Bon voila ce que j'avais fait.
int main()
{
int a=500;
int aide=2;
int i;
int j;
printf("Voila la liste des nombres premier ");
for (j=2 ; j<a ; j++)
{
for(i=1 ; i<j ; i++)
{
if (j%i==0)
aide=aide+i
}
if(aide==j)
printf("%d est un nombre premier \n",&j);
}
return 0;
}
apparrement j'ai rater quelque chose
et merci pour votre reponse
int main()
{
int a=500;
int aide=2;
int i;
int j;
printf("Voila la liste des nombres premier ");
for (j=2 ; j<a ; j++)
{
for(i=1 ; i<j ; i++)
{
if (j%i==0)
aide=aide+i
}
if(aide==j)
printf("%d est un nombre premier \n",&j);
}
return 0;
}
apparrement j'ai rater quelque chose
et merci pour votre reponse
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Votre algorithme ne correspond pas à la définition d'un nombre premier mais à celle d'un nombre amiable. Solution recopiée sur internet ?
Un nombre est premier s'il divisible que par lui-même et un.
Je vous conseille de faire une fonction : int estPremier(int nb) qui renverra 0 si le nombre est non premier, 1 s'il l'est.
Ainsi, le programme ressemblera à :
Je vous laisse à titre d'exercice les trois petits points.
Cdlt,
Un nombre est premier s'il divisible que par lui-même et un.
Je vous conseille de faire une fonction : int estPremier(int nb) qui renverra 0 si le nombre est non premier, 1 s'il l'est.
Ainsi, le programme ressemblera à :
#define MAX 500 int estPremier(const int i) { int j; for(... if(...) return 0; return 1; } int main(void) { int i,j; for(i=2;i<MAX;i++) { if(estPremier(i)) printf("%d\n",i); } return 0; }
Je vous laisse à titre d'exercice les trois petits points.
Cdlt,