Téléchargé 1 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 24 janvier 2017
Langue : Français
Référencé dans
Navigation
Nombres premiers
Nombres premiers
Code incluant deux fonctions :
- is_prime déterminant si un nombre est premier
- first_primes retournant les N premiers nombres premiers
Nos ressources disponibles
Code C++ : | Sélectionner tout |
bool is_prime(unsigned long long p)
Code C++ : | Sélectionner tout |
vector first_primes(vector::size_type value)
Bonjour,
Je vous propose un nouvel élément à utiliser : Nombres premiers
bool is_prime(unsigned long long p)
renvoie true si p est premier ( n'est pas 2 ni trois de 3 et non multiple 6n±1 ≤ √p avec n>= 1 et n entier)
vector first_primes(vector::size_type value)
renvoie les value premiers entiers; il ajoute les entiers 6n±1 en vérifiant s'il n'est pas multiples des premiers nombres premiers déjà calculés
Qu'en pensez-vous ?
Je vous propose un nouvel élément à utiliser : Nombres premiers
bool is_prime(unsigned long long p)
renvoie true si p est premier ( n'est pas 2 ni trois de 3 et non multiple 6n±1 ≤ √p avec n>= 1 et n entier)
vector first_primes(vector::size_type value)
renvoie les value premiers entiers; il ajoute les entiers 6n±1 en vérifiant s'il n'est pas multiples des premiers nombres premiers déjà calculés
Qu'en pensez-vous ?
Bonjour,
J'aurais passé le std::vector en référence, au lieu de le passé en copie et de le retourner.
J'aurais passé le std::vector en référence, au lieu de le passé en copie et de le retourner.
En C++11 le vector retourné sera déplacé et non copié. Donc ca me semblerait OK pour moi.
Oui, j'avais oublié ce détail.
Mais bon, première ligne de la fonction :
Ça fait lourd, je trouve (du moins dans l'idée).
Mais bon, première ligne de la fonction :
Code : | Sélectionner tout |
vector<unsigned long long> result(value);
"Et une fois de plus, une boucle qui progresse par pas de 1, et donc passe systématiquement par tous les nombres pairs."
pour is_prime
il vérifie s'il nest pas multiple de 2 et qu'il ne soit pas 2
même chose pour 3
puis verifie s'il n'est pas multiple de 6n±1 en commençant par n = 1 soit (5, 7, 11, 13, 17, 19, 23, 25) où sont les nombres pairs ?
pourquoi 6n ± 1 :
6n + 1 peut être premier
6n + 2 est pair donc non premier
6n + 3 est multiple de trois
6n + 4 est pair
6n + 5 peut être premier
pour is_prime
il vérifie s'il nest pas multiple de 2 et qu'il ne soit pas 2
même chose pour 3
puis verifie s'il n'est pas multiple de 6n±1 en commençant par n = 1 soit (5, 7, 11, 13, 17, 19, 23, 25) où sont les nombres pairs ?
pourquoi 6n ± 1 :
6n + 1 peut être premier
6n + 2 est pair donc non premier
6n + 3 est multiple de trois
6n + 4 est pair
6n + 5 peut être premier
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.