But : concevoir des petits algorithmes, organiser son code.
-
Ecrire un programme qui affiche les 50 premiers nombres premiers.
Un nombre premier n'est divisible que par 1 et par lui-même.
Par exemple, 7 est premier, mais 6 n'est pas premier car il peut être divisé par 2 et par 3.
La sortie souhaitée est :1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227
Il existe plusieurs manières de faire ; dans un premier temps, ne vous préoccupez pas d'optimisation, le but de l'exercice étant d'utiliser des boucles, pas de faire des maths !
Vous pouvez utiliser l'opérateur modulo (%
).
Par exemple, pour savoir en java si 28 est divisible par 5 :if(28 % 5 == 0)
-
(optionnel) Vous pouvez essayer de minimiser le nombre de tests effectués.
-
En remarquant qu'il est inutile de tester au delà de la racine carré du nombre.
Par exemple, si vous testez 29, inutile de tester au delà de 6 (utiliserjava.lang.Math.sqrt()
). -
En remarquant qu'il suffit de tester si le nombre est divisible par les nombres premiers inférieurs à celui-ci.
Par exemple, si vous testez si 29 est premier, inutile de tester 14 : s'il était divisible par 14, il serait divisible par 2 et par 7, car 14 = 2 * 7.
-
En remarquant qu'il est inutile de tester au delà de la racine carré du nombre.