Bon c´est pas grave, je me limiterais a quelques milliers de nombres premiers mais c´est dommage.
Sur ma TI j´ai fini un autre programme , qui grace a la matrice remplie de 495 nombres premier, décompose un nombre en produit de nombres premiers (par exemple : 6 = 2 x 3).
Alors en fait, j´aimerais adapter ce programme en C++ , mais il faudrait en fait que le tableau de nombre premier, une fois rempli soit accessible , et qu´on ait pas besoin de le remplir a chaque fois (le stocker quelque part, et l´appeler dans un autre programme).
Je fais la traduction de ce nouveau programme vite fait en C++ :
tiens d´ailleur, comme j´utilise toutes les variables disponibles de ma TI pour avoir un maximum de facteurs dans le produit (du fait que j´utilise 6 variables pour le programme, et que je n´ai pas de place a allouer a une autre matrice sur ma ti , j´utilise donc 20 variables maximum pour les produit), je vais donc essayer d´utiliser un deuxieme tableau qui contient, disons maximum 100 facteurs pour commencer.
int main ()
{
//ici j´apelle le tableau , disons "tableau[]"
int factor[100]={0};
int x=1;
int z=2;
int c=0;
int b=0;
cout << endl;
cin >> c;
if(c<1 or ((2c)%2)!=0)
{
cout << "faut pas me prendre pour un idiot" << end
l;
return 0;
}
while (1==1)
{
b=tableau[z];
c=c/b
if (((2c)%2)==0)
{
factor[x]=b;
x++;
if (c=1)
{
cout << endl << endl << "les facteurs sont :" << endl;
for (x=1,x!=0,x++)
{
cout << factor[x] << endl;
}
system("PAUSE");
return 0;
}
else
{
c=c*b
if (b>(c/2))
{
factor[x]=b;
cout << endl << endl << "les facteurs sont :" << endl;
for (x=1,x!=0,x++)
{
cout << factor[x] << endl;
}
system("PAUSE");
return 0;
}
z++;
}
}
voila , alors voila ce que fait le programme (si j´ai bien transmit) :
-il insère la valeur qu´on lui donne dans "c".
-dans une boucle infinie :
--il met dans "b" la valeur a la place "z" du tableau du nombre premier.
--c=c/b
--si "c" est positif :
---il insére dans le tableau "factor[]" a la place "x" un des facteur de "c" : "b".
---x++
---si "c" vaut 1 , on affiche alors le tableau de facteur tant que celui ci n´atteind pas la valeur 0.
--sinon :
---c=c*b
---si "b" est supérieur a la moitié de "c" (autrement dit que la quotient des 2 ne peut plus etre entier)
----on met le dernier facteur "b" dans le tableau des facteurs "factor[]" et on affiche son contenu de la meme facon qu´avant.
--z++ (autrement dit on va dans la prochaine boucle regarder ce qu´il se passe pour le prochain nombre premier du tableau des nombres premier "tableau[]".
-fin
Voila, alors il me faudrait donc pouvoir accéder au tableau du programme d´avant, de plus, je n´ai pas encore testé si (((2c)%2)==0) vérifiait bien l´intégrité d´une seule variable, et si vous reperez des erreurs dans le programme, merci de bien me les faire parvenir !
merci !