KX
Messages postés16668Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention17 mars 2023125 Modifié le 30 juil. 2017 à 20:28
Normalement si le code était bien fait les variables devraient être bien nommés parce que "a", "i", "j" ça ne veut rien dire donc on ne sait pas bien à quoi servent chaque valeur dans le calcul.
Un nombre est premier s'il possède deux diviseurs (1 et lui même), ici "a" représente le nombre de diviseurs de l'entier "i" ce qui explique pourquoi on fait un test (a==2) pour savoir si "i" est premier ou pas.
Mais pour chaque entier on doit compter le nombre de diviseurs à partir de zéro, parce que c'est spécifique à l'entier que l'on considère, le nombre de diviseur d'un entier ne dépend jamais du nombre de diviseurs de l'entier qu'on a calculé avant.
Si on ne réinitialisait pas "a" pour chaque entier mais qu'on laissait les +1 s'accumuler, il y aurait un moment où on dépasse la valeur 2 mais jamais on ne redescendra en dessous de 2, donc au mieux le test (a==2) ne pourrait être vrai qu'une seule fois, puisque après "a" sera toujours de plus en plus grand. C'est pour ça qu'il faut remettre à zéro la valeur de "a" au début du calcul de chaque entier.