[C/C++] DÉTERMINER LES DIVISEURS D'UN NOMBRE AVEC DES INFORMATIONS SUPPLÉMENTAIR

circular Messages postés 17 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2010 - 2 nov. 2009 à 14:40
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 - 4 nov. 2009 à 12:47
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/50781-c-c-determiner-les-diviseurs-d-un-nombre-avec-des-informations-supplementaire

soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
4 nov. 2009 à 12:47
Oui bien sûr, je manquerez pas d'implémenter le "crible quadratique" si je devez un jour calculer les diviseurs d'un nombre (très) important ! =)

Merci Bacterius.
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
4 nov. 2009 à 12:38
Evidemment, si c'est juste pour des nombres de l'ordre d'un millier, c'est inutile.
Mais si un jour tu as besoin de factoriser des grands nombres (factoriser = trouver les facteurs/diviseurs), utilise plutôt ceux dont je t'ai parlé (à moins que t'ai 2 milliards d'années devant toi).

Cordialement, Bacterius !
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
4 nov. 2009 à 12:31
Je ne pense pas que cela soit nécessaire car ce code est conçu dans le but de calculer les diviseurs d'un nombre composé de 3-4 chiffres maximum et pas des centaines ...
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
4 nov. 2009 à 12:23
Tu peux aussi implémenter le crible quadratique ou le crible spécial de corps de nombres. Tu pourras trouver les diviseurs d'un nombre de 100 chiffres en 30 minutes sur un bon PC. Mais pour l'implémenter, bonjour ... :p

Cordialement, Bacterius !
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
2 nov. 2009 à 15:02
Merci circular mais je crois que c'est deja fait, regarde la ligne 28 ;)
circular Messages postés 17 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 27 mars 2010
2 nov. 2009 à 14:40
On peut aller plus vite dans la recherche en allant seulement jusqu'à la racine carrée du nombre. Après, on retrouve les résultats précédents. Par exemple avec le nombre 60 :

8x8 > 60, donc on a besoin d'aller que de 1 à 7.

Par exemple, si on va jusqu'à 10, on trouve 10x6 60, mais on a déjà trouvé cette décomposition à partir de 6, puisque 6x10 60.
Rejoignez-nous