Nombre de diviseurs d'un nombre entiers [URGENT]

Signaler
-
Messages postés
14725
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 septembre 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.
A voir également:

2 réponses

Messages postés
14725
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 septembre 2020
144
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
Messages postés
14725
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 septembre 2020
144
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.