Derniers tutoriels :
Resynchroniser le son décalé dans...
Procedure to eradicate malwares/spy...
[Guide] Kaspersky Online Scanner (N...
Créer son CD Windows XP avec nLite...
Afficher les fichiers cachés et pr...
[ Tutoriel ] Malwarebytes' Anti-Mal...
[ Tutoriel ] Réseau entre Linux et...
Transformer votre box en routeur
Créer un partage de connexion inte...Sondage :
Publicité
B&You, Virgin Mobile et Sosh s'alig...
Free Mobile : les offres / forfaits
Free Mobile : Enfin le lancement
Pacitel, la liste anti-démarchage ...
Disques durs : vers des tarifs en h...
JDLL 2011 : Bilan du samedi après-...
JDLL 2011 : Bilan du samedi matin
Android : Code source Ice Cream San...
Le microprocesseur a 40 ansDerniers articles :
Dossier/test : Chrome le navigateur...
Guide : formater et réinstaller Wi...
Maintenir son PC en bonne santé...
...
[dossier] L'anonymat sur Internet
Un nom de domaine gratuitement avec...
Guide : créer et configurer son pr...
Dossier test Aol Antivirus Shield :...![]() |
|
[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é ( tabulation )
[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 ?
|