FACTORISATION D'UN NOMBRE

acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 - 16 févr. 2008 à 10:00
jimonnet Messages postés 10 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 6 mai 2008 - 4 mai 2008 à 20:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45756-factorisation-d-un-nombre

jimonnet Messages postés 10 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 6 mai 2008
4 mai 2008 à 20:21
Ben...
finalement je m'en suis pas servi
parce que j'ai trouvé comment faire plus court
Mais merci quand même
jimonnet Messages postés 10 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 6 mai 2008
20 févr. 2008 à 17:08
Merci

Ce programme va bien me servir !!
Utilisateur anonyme
20 févr. 2008 à 11:55
Tu as tout à fait raison, c'est un problème au niveau du test conditionnel: ça ne marche pas pour tout les carrés de nombres premiers...
Je corrige ça tout de suite.
Bien entendu, tu es libre d'utiliser ce bout de code (et tu n'as pas besoin de me mentionner dans la section "crédit" ;) )
jimonnet Messages postés 10 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 6 mai 2008
20 févr. 2008 à 11:22
j'ai constater une erreur importante :

lorsque l'on demande de factoriser 25
le programme repond 1*25 au lieu de 1*5^2
jimonnet Messages postés 10 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 6 mai 2008
20 févr. 2008 à 11:00
Salut programme super

mais n'y-a-t-il pas moyen de depasser les nombres
de 12 chiffre ?

Je souhaiterait reutiliser ton code pour un projet de suite aliquote
Puis-je ?
Utilisateur anonyme
16 févr. 2008 à 13:06
merci ^^

Au fait Acx01B, lorque je compile ton code, il me dit "Segmentation fault (core dumped)" :(
simo5963 Messages postés 127 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 24 mars 2009 1
16 févr. 2008 à 12:25
bien Faibbus bonne idée
Utilisateur anonyme
16 févr. 2008 à 10:11
C'est beaucoup plus court niveau code, mais il fait plus de calcul...
Par contre, le premier while, je pige pas la condition qu'il teste. En plus, ton programme va écrire 15 fois "2" dans le tableau si par exemple 2 divise n 15 fois... il serait préférable qu'il stocke "2" et dans la deuxième ligne 15 (enfin, à mon avis...)
Mais sinon, ça à l'air pas mal. Je vais tester ça de suite.
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
16 févr. 2008 à 10:00
salut je peux faire encore plus court

int tab[MAX]; // la factorisation
int factoriser(int n) { // n : le nombre à factoriser
int i, d;
i = 0;
while (!(n & 1)) { tab[i++] = 2; n >>= 1; }
d = 3;
while (n != 1) {
while(!(n % d)) { tab[i++] = d; n /= d; }
d += 2;
}
return i;
}
Rejoignez-nous