Exercice : Nombres premiers

But : concevoir des petits algorithmes, organiser son code.
  1. 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)
  2. (optionnel) Vous pouvez essayer de minimiser le nombre de tests effectués.
    1. 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 (utiliser java.lang.Math.sqrt()).
    2. 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.