#include <stdio.h> void diviseurs(int nombre) { int increment; for (increment=1 ; increment<=nombre ; increment++) { if ((nombre%increment)==0) printf("%d\n",increment); } } void main() { diviseurs(36); getch(); }
Télécharger le zip
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
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
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 169 membres 3 nouveaux aujourd'hui 16 151 membres club