Nombre de diviseurs d'un nombre entiers [URGENT]

Signaler
-
NHenry
Messages postés
14653
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 février 2020
-
Bonjour,

pour un travail je dois créer un programme qui affiche le nombre de diviseurs d'un nombre entier

j'ai trouvé ça

{

int x =  2 ; 


for ( int i  = 2; i <= n/2 ; i++)
{
  if (n % i == 0)
  {
    x = x+1;
       } 
 System.out.println (x) ;
}
        
      return n;
} 



mais apparement quand n = 3, le programme renvoit à 3 diviseurs plutôt qu'à 2 !!
pourriez-vous m'aider svp ?

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
14653
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 février 2020
139
Si ton but est d'afficher les diviseurs, pourquoi avoir déclaré une variable "x"alors que si tu affiches la valeur de "i", tu as le diviseur en question ?
parce qu'il faut obtenir le nombre de diviseurs possibles et non pas les diviseurs en eux-mêmes.

j'avais posé x=2 parce que tous les nombres sont divisibles par 1 et eux-même.
mais pour les nombres premiers comme 3, x (donc le comptage) sera égal à 3.
et c'est la que je bloque.

merci
NHenry
Messages postés
14653
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 février 2020
139
Après avoir regardé ton code, j'ai compris que tu retournes le nombre passé en paramètre, donc si tu mets 3 ça te retourne 3, et par exemple 10 ça te retourne 10.
Peut être revoir la valeur retournée.