Nombre de diviseurs d'un nombre entiers [URGENT]

-
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.
Afficher la suite 

Votre réponse

2 réponses

Messages postés
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130
0
Merci
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 ?
Commenter la réponse de NHenry
0
Merci
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
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130 -
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.
Commenter la réponse de Jessicah