Une explication plus intuitive serait :-
La racine carrée de 100 est 10. Disons que a x b = 100, pour différentes paires de a et b.
Si a == b, alors ils sont égaux, et sont la racine carrée de 100, exactement. Ce qui donne 10.
Si l'un d'eux est inférieur à 10, l'autre doit être supérieur. Par exemple, 5 x 20 == 100. L'un est supérieur à 10, l'autre est inférieur à 10.
Si l'on considère le rapport a x b, si l'un d'eux diminue, l'autre doit augmenter pour compenser, de sorte que le produit reste égal à 100. Ils pivotent autour de la racine carrée.
La racine carrée de 101 est d'environ 10,049875621. Donc, si vous testez la primalité du nombre 101, vous n'avez besoin d'essayer que les entiers jusqu'à 10, y compris 10. Mais 8, 9 et 10 ne sont pas des nombres premiers, donc vous ne devez tester que les nombres jusqu'à 7, qui est premier.
Parce que s'il y a une paire de facteurs dont l'un des nombres est supérieur à 10, l'autre de la paire doit être inférieur à 10. Si le plus petit n'existe pas, il n'y a pas de facteur plus grand correspondant de 101.
Si tu testes 121, la racine carrée est 11. Vous devez tester les nombres entiers premiers de 1 à 11 (inclus) pour voir s'ils sont égaux. 11 entre 11 fois, donc 121 n'est pas premier. Si vous vous étiez arrêté à 10, sans tester 11, vous auriez manqué 11.
Vous devez tester chaque nombre entier premier supérieur à 2, mais inférieur ou égal à la racine carrée, en supposant que vous ne testez que les nombres impairs.
`
53 votes
Car si
n = a*b
ya <= b
puisa*a <= a*b = n
.18 votes
Pour clarifier, cela signifie que nous devons tester uniquement jusqu'à ce que
floor(sqrt(n))
.7 votes
mathandmultimedia.com/2012/06/02/