Améliore ta fonction en une fonction est_premier_2(n)
qui ne teste pas tous les diviseurs d
jusqu’à n
, mais seulement jusqu’à racine carre de n
.
Explications :
- Par exemple, pour tester si 101 est un
nombre premier
, il suffit de voir s’il admet des diviseurs parmi2, 3, . . . , 10
. Le gain est appréciable ! - Cette amélioration est due à la proposition suivante : si un entier n’est pas
premier
alors il admet un diviseursd
qui vérifie2 <= d <= racine carre de n
. - Au lieu de tester si
d <= racine carre de n
, il est plus facile de testerd² <= n
!