Derniers tutoriels :
Sondage :
Publicité
Derniers articles :
![]() |
[Résolu] Exercice en C , trouver si un nombre est premier - Version imprimable +- Forums d'entraide informatique - Les forums de PCW (http://forum.pcinfo-web.com) +-- Forum : Forum Informatique (/forumdisplay.php?fid=39) +--- Forum : Internet - Navigation -Programmation - Scripts - Developpement (/forumdisplay.php?fid=8) +--- Discussion : [Résolu] Exercice en C , trouver si un nombre est premier (/showthread.php?tid=2075) |
[Résolu] Exercice en C , trouver si un nombre est premier - Chamaille - 07-02-2008 16:29 PM Bonjour! J'ai un petit exercice à faire (je dois le terminer demain matin alors si vous pouviez m'aider??!!): le but est de vérifier si un nombre donné est premier ou non. On peut utiliser l'instruction break. NB: Un nombre est premier si et seulement s'il est divisible seulement pas 1 et lui-même! Voici ce que j'ai fait: Citation :#include <stdio.h> Pourriez-vous vérifier si c'est correct? Et me donner des idées pour l'améliorer? Par exemple en diminuant le nombre de conditions à tester si c'est possible? Lorsque je choisis nombre=10, on me dit bien qu'il n'est pas premier, mais lorsque je choisis un nombre que je sais premier par exemple 11, le programme se lance et n'affiche rien, vraiment rien! Il ne se ferme même pas. Que faire d'ailleurs lorsqu'un programme fait ça? Merci beaucoup d'avance! ![]() - Troll - 07-02-2008 17:13 PM Salut Chamaille ! ![]() Alors tout d'abord, content de te revoir ![]() Ensuite, je remarque, bien que j'ai des connaissances quasi-inexistantes en C, que ton programme fonctionne à mon goût de manière étrange. Tout d'abord tu vérifies s'il se divise par 1 si je ne me trompe : aucun besoin puisque tous les nombres sont divisibles par un (à part peut-être les irréels, mais ça m'étonnerait que tu doives gérer les irréels). Ensuite tu défini un paramètre qui est le maximum d'itérations de ta boucle, cependant ce paramètre est défini manuellement, donc faut avoir une idée du nombre d'itérations à tester... Ce qui risque d'être dur avec par exemple 0938530 ![]() Le théorème : Un nombre est premier s'il n'est pas divisible par tous les chiffres impairs situés entre 1 et sa racine. Donc ton parametre (i) tu le met = sqrt(nombre) Si cela ne suffit pas à te sortir de la galère, un peu de lecture Voilà, à bientôt ![]() - Chamaille - 07-02-2008 21:11 PM Merci pour ta réponse! Pour la division par 1 je pense que je vais la retirer oui. Sinon à propos de la lecture que tu m'as donnée, ils utilisent les booléens si je ne me trompe. Le problème c'est que je ne peux pas encore l'utiliser: début des cours de C oblige, le prof ne l'a pas encore fait... - Troll - 07-02-2008 22:43 PM Bah fais comme je t'ai dit ![]() Tu fais une fonction nbpremier(nombre) tu calcule : int max = SQRT(nombre)+0.5; (le + 0.5 c'est au cas ou nombre serait un carré parfait). Ensuite tu fais une boucle for : for(i=1;i<=max;i+2) { tu vérifies si nombre est divisible par i Si oui -> Pas premier, si non : on continue } Si la boucle n'a pas été arrêté par un affichage, le nombre est premier, tu affiche que le nombre est premier ![]() [Je pourrais te faire ca en PHP mais en C je ne peux me contenter que de te donner la méthode ![]() - Chamaille - 08-02-2008 16:11 PM j'ai finalement réussi merci! - Troll - 08-02-2008 19:05 PM Salut ![]() Content pour toi, est-ce que tu as réussi suite à ce que je t'ai conseillé ? Si tu pouvais nous donner ton code fonctionnel je suis sûr que ça en aiderait d'autres ![]() - Chamaille - 08-02-2008 19:37 PM oui l'idée d'utiliser la racine carrée m'a aidé par exemple, pour ce qui est du code, je l'afficherai (si j'y pense) dès lors que je le récupérerai: je l'ai laissé sur l'ordi de ma fac... ![]() - Troll - 08-02-2008 19:40 PM D'accord ![]() - TotofTeam - 08-02-2008 21:08 PM Salut, il est sympathique de mettre de l'indentation dans tes codes sources, pour une meilleur visibilité ![]() [Résolu] Exercice en C , trouver si un nombre est premier - Troll - 06-06-2008 05:06 AM Chamaille a écrit :oui l'idée d'utiliser la racine carrée m'a aidé par exemple, Ton ordi est toujours pas revenu de la FAC ? ![]() |