Un soucie avec un programme en java

Résolu/Fermé
ssalatin Messages postés 63 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 janvier 2016 - 1 juil. 2012 à 10:32
ssalatin Messages postés 63 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 janvier 2016 - 1 juil. 2012 à 23:00
Bonjour,

j'ai écrie un programme en java permettant de compter le nombre de diviseur d'un nombre entier que je donne, puis de les afficher !

voila ce que j'ai codé mais le résultat n'est pas ce que j'ai voulu faire :/
--------------------------------------------------------------------------------------------------------------
int diviseur=0, nb;
System.out.println("Entrer un nombre");
nb = lire.nextInt() ;
for (int i = 0; i < nb / 2; i++) {
if (nb % i == 0) {
System.out.println("le divisuer est" + diviseur++);

}
}
}
}

1 réponse

leen.net Messages postés 212 Date d'inscription lundi 31 janvier 2011 Statut Membre Dernière intervention 14 mai 2014 14
1 juil. 2012 à 11:44
D'apres ce que j'ai compris tu dois faire cela:
for (int i = 0; i < nb / 2; i++){
if (nb % i == 0) diviseur++;}
System.out.println("le divisuer est" + diviseur);

0
ssalatin Messages postés 63 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 janvier 2016 6
1 juil. 2012 à 11:54
c marche pas aussi il revoie cette erreur !
Exception in thread "main" java.lang.ArithmeticException: / by zero
at passage.main(passage.java:10)
0
leen.net Messages postés 212 Date d'inscription lundi 31 janvier 2011 Statut Membre Dernière intervention 14 mai 2014 14
1 juil. 2012 à 11:59
ah tu dois commencer par i=1
for (int i=1;i<....)
0
ssalatin Messages postés 63 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 janvier 2016 6
1 juil. 2012 à 12:08
Sa marche mtn mais il me donne seulement un diviseur "2" et moi je veux qu'il revoie tout les diviseur de 8 par exemple !! une idée ?!
0
KX Messages postés 16602 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 3 octobre 2022 2 974
1 juil. 2012 à 13:11
C'est parce que la boucle de leen.net n'affiche pas les diviseurs de nb, mais le nombre de diviseurs qu'il y a entre 1 et nb/2-1. Pour nb=8, tu as donc bien 2 diviseurs entre 1 et 3 qui sont 1 et 2...

Pour ce que tu veux faire ce serait plutôt comme ça :

for (int i=1; i<nb; i++)
    if (nb%i==0)
        System.out.printf("%d est un diviseur de %d\n",i,nb);
0
ssalatin Messages postés 63 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 janvier 2016 6
1 juil. 2012 à 14:38
programme exécuté mercii :)
0