Bonjour,
Je viens vous demander un peu d'aider concernant la compréhension d'un algorithme fonctionnel. Mais je ne comprend pas certaines parties, ce n'est pas le code mon problème mais les mathématiques qui sont derrières tout ça.
C'est un test de primarité que j'ai récupérer dans un algorithme de génération de nombre primaire avec AKS en C++.
Voila, je ne comprend pas à partir de la racine carré puis ensuite, la boucle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 bool IsPrime(unsigned int nbr) { //2 est le seul entier pair premier if(nbr == 2) return true; //Tous les nombres inférieurs à 2 et pair ne sont pas premier if(nbr < 2 || isEven(nbr)) return false; const unsigned int iMax = sqrt((float)nbr) + 1; unsigned int i; for (i = 3; i <= iMax; i += 2) { if (nbr % i == 0) return false; } return true; }
Quelqu'un pourrait me renseigner?
Merci beaucoup par avance.
Partager