|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Étudiant Inscription : mai 2012 Messages : 3 ![]() |
Bonjour à tous,
Je rencontre un problème avec mon programme, est-ce quelqu'un pourrait m'éclairer? Le programme reçoit un nombre entier et renvoie si c'est un nombre premier ou pas: Code :
Merci d'avance! |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : avril 2002 Messages : 2 273 ![]() |
Ton indentation n'est pas du tout claire, de même que l'imbrication des condition If/Then/Else. Essaye de bien découper ces instructions, et ton problème devrait apparaître plus clairement.
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal |
|
|
20
|
|
|
#3 | ||
|
Invité de passage
![]() Étudiant Inscription : mai 2012 Messages : 3 ![]() |
De cette manière, j'arrive à faire fonctionner mon programme mais l'écriture ne me plaît pas... Je n'arrive vraiment pas à faire fonctionner le premier... Est-ce quelqu'un pourrais me montrer la bonne écriture ? Ce n'est pas faute d'avoir y essayé...
Merci pour la réponse d'au dessus mais je n'y vois pas plus clair... Je re essayerai demain à tête reposée. Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 687 ![]() |
Pour tenir compte du conseil qui t'a été donné plus haut, tu ferais peut-être bien d'utiliser systématiquement l'écriture suivante:
Code :
__________________
L'Art est long et le Temps est court. |
||
|
|
10
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Koa,
+1, ET d'utiliser une mise en forme cohérente et régulière.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Étudiant Inscription : mai 2012 Messages : 3 ![]() |
Merci à tous pour vos réponses qui m'aide. J'ai enfin réussi à faire fonctionner la bête ! ;-)
Est-ce que vous pourriez m'éclairer sur 2-3 points: Il y a-t-il un moyen d'éviter que mon programme calcul tous les diviseurs jusqu'au (nombre-1) une fois qu'il a trouvé un nombre qu'il le divise. Peut-être que je ne suis pas clair, je vais vous donner un exemple: Imaginons que je rentre le chiffre 9: mon programme va le diviser par 2 puis 3, puis 4... jusqu'à 9 diviser par 8. Est-ce qu'il y a moyen qu'une fois que mon programme remarque que 9 est divisible par 3 il arrête la boucle ? ça me permettrait d'économiser... Devrais-je utiliser la boucle repeat... until ? Deuxième question: Est-ce si par exemple mon programme rempli la première condition, il y-a-t-il moyen qu'il évite toutes les autres conditions ? Ou est-ce que ça le fait déjà lorsqu'on utilise IF, ELSE IF, Else ... ? Merci à vous et désolé si mes questions semblent stupides ... |
|
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Emilien Étudiant Inscription : octobre 2010 Messages : 69 ![]() |
Bonjour,
Il existe un théorème en arithmétique qui stipule que si un nombre n'est divisible par aucun entier inférieur à sa racine carré, alors ce nombre est premier. Tu n'as donc pas besoin de monter jusqu'à n-1 mais seulement jusqu’à l'entier immédiatement inférieur à la racine de n. Pour ce qui est de stopper le test quand un diviseur est trouvé, tu peux remplacer ta boucle for par une boucle while qui teste deux conditions, quelque chose comme : Code :
|
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hoi,
Et n'oublies pas de ne pas utiliser les diviseurs pairs comme tu le fais avec ta boucle for
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
|
|
#9 | ||
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 14 ![]() |
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Étudiant Inscription : décembre 2012 Messages : 2 ![]() |
Tiens cette réponse :
Code :
|
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Woe,
Quand on donne une réponse, on essaye d'en fournir une qui améliore ce qui a déjà été fait, ce qui n'est pas du tout le cas de la tienne.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Étudiant Inscription : décembre 2012 Messages : 2 ![]() |
Vous n'arrivez pas a comprendre que le changement est la meilleure façons d'améliorer les choses???
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hoa,
Le changement est une bonne chose, quand il va dans le bon sens. Mais pour le côté amélioration, ce n'est pas le cas de ton code, qui reprend tout ce qu'il ne faut pas faire pour résoudre le problème posé.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com