TITM4v3rick
1337
Bon voilà, je me demandais si qqn dans "la salle" savait ou connaissait un algorythme de calcul de facteurs premiers sur base d'un nombre ?
Pour rappel :
1 = 1
2 = 2
3 = 3
4 = 2^2
5 = 5
6 = 2 x 3
7 = 7
8 = 2^3
9 = 3^2
10 = 2 x 5
etc...
Bon j'en ai mis un au point en C++ mais il a une limite...
Et j'aime pas les limites, enfin voyez :
Le but de cet algo est de mettre dans un vecteur (ou tableau) tous les facteurs premiers d'un nombre passé en paramètre à la fonction...
Note : je v essayer de faire une version récursive dont la limite serait la "pile" ...
Pour rappel :
1 = 1
2 = 2
3 = 3
4 = 2^2
5 = 5
6 = 2 x 3
7 = 7
8 = 2^3
9 = 3^2
10 = 2 x 5
etc...
Bon j'en ai mis un au point en C++ mais il a une limite...
Et j'aime pas les limites, enfin voyez :
Le but de cet algo est de mettre dans un vecteur (ou tableau) tous les facteurs premiers d'un nombre passé en paramètre à la fonction...
Code:
vector < unsigned long > outils::getFacteursPremiers2(long val)
{
vector < unsigned long > v;
unsigned long valeur=0;
if (val < 0)
valeur = -val;
else
valeur = val;
unsigned long d = 2;
while (d != 2E32) {
while (!(valeur % d)) {
v.push_back(d);
valeur = valeur/d;
}
d++;
if (valeur < 2) // pour ne pas boucler longtemps inutilement
break;
}
if (valeur > 1)
v.push_back(valeur);
return v;
}