Posté par
plumemeteore plumemeteorebonjour Coko
dans l'état actuel de ton programme, si n = 3, 5 ou 7, la condition de la boucle, dès le départ n'est pas remplie et elle ne s'effectue pas
si n = 9 ou un multiple de 3, le programme devrait afficher 'le nombre n'est pas premier' puis 'le nombre est premier' cependant que k passe à 5
la boucle continue tant que n est divisible par les valeurs de k : par 3, par 5, par 7, par 9
à la première non divisibilité, la condition if mod(n;k) = 0 n'est plus remplie, les instructions suivantes ne s'exécutent pas et k reste 'calé'; comme k² reste alors inférieur à n, la condition de la boucle est toujours remplie, mais elle tourne à vide
la fin du programme devrait être ceci (les ajouts sont en gras)
: While k^2 <= n
: If mod(n,k)=0 Then
: Disp "le nombre n'est pas premier"
:
Stop // où l'instruction du langage arrêtant l'exécution
:
Else
: k+2->k
: Disp"le nombre est premier"
: EndIf // se rapporte au If après While
: EnWhile
:
EndIf // se rapporte au If du tout début
: EndPrgm