Diviseurs d'un nombre [tout compilateur]

Soyez le premier à donner votre avis sur cette source.

Vue 16 878 fois - Téléchargée 594 fois

Description

Voici un petit prog qui affiche tous les diviseurs d'un nombre

Source / Exemple :


#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();
}

Conclusion :


l'operation % (modulo) calcule le reste de la division euclidienne d'un nombre.
ex : 10%3 sera egal a 1 car 3 entre 3 fois dans 10, et il reste donc 1 (3x3=9)
si le modula est 0 alors le nombre est divisible
ex: 10%5

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

zut69
Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1 -
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
soso62fr
Messages postés
79
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
28 avril 2010
-
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.