Bonjour,
J'ai eu cet algorithme (sous Algobox) sur les nombres premiers et je ne comprends pas certaines commandes.
Voici l'algorithme (mode editeur de texte) :
===========================
VARIABLES
n EST_DU_TYPE NOMBRE
d EST_DU_TYPE NOMBRE
q EST_DU_TYPE NOMBRE
divise EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
divise PREND_LA_VALEUR 0
POUR d ALLANT_DE 2 A floor(n/2)
DEBUT_POUR
q PREND_LA_VALEUR n%d
SI (q==0) ALORS
DEBUT_SI
divise PREND_LA_VALEUR 1
x PREND_LA_VALEUR n/d
AFFICHER x
AFFICHER " "
FIN_SI
FIN_POUR
AFFICHER* " "
AFFICHER n
SI (divise == 1) ALORS
DEBUT_SI
AFFICHER* " n'est pas premier"
FIN_SI
SINON
DEBUT_SINON
AFFICHER* " est premier"
FIN_SINON
FIN_ALGORITHME
=======================================
Si je comprends bien:
Ligne 9 => Pour mettre la variable a 0 (sécurité)
Ligne 10 => de 2 a floor (n/2) : 2 car par définition, un nombre premier est supérieur a 2, floor correspond a la partie entière de n/2; n/2 car un diviseur ne dépasse jamais la moitie du nombre
Mais par contre, je ne vois pas pourquoi "SI (q==0) ALORS [...] divise PREND_LA_VALEUR 1" et non plus la partie "SI (divise == 1) ALORS"
Quelle est l'utilité de ces lignes ? J'ai essayer le mode pas a pas, mais je ne comprends toujours pas.
Merci d'avance.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :