DIVISEURS D'UN NOMBRE [TOUT COMPILATEUR]

zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 25 nov. 2008 à 19:05
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 - 1 nov. 2009 à 23:36
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/9635-diviseurs-d-un-nombre-tout-compilateur

soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
1 nov. 2009 à 23:36
Salut.
Voilà mon code qui est un peut plus complet et plus poussé (enfin façon de parler lol)
http://www.cppfrance.com/codes/CPLUSPLUS-DETERMINER-DIVISEURS-NOMBRE-AVEC-INFORMATIONS-SUPPLEMENTAIRE_50781.aspx
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
25 nov. 2008 à 19:05
Pratique et simple, mais peut être facilement optimisé, ne serait-ce qu'en testant ton modulo jusqu'à la moitié du nombre.
Pourquoi tester si 19,20,21,...,35 sont des diviseurs de 36?
on divise par 2 le nombre d'itérations en changeant:

for (increment=1 ; increment<=nombre ; increment++)

par:

for (increment=1 ; increment<=(nombre/2.); increment++)

Il me semble qu'il suffit même de s'arrêter à la racine du nombre, mais j'ai pas le courage de réfléchir 2 minutes pour savoir si c'est le cas :-p
Rejoignez-nous