Jessicah
-
Modifié le 3 nov. 2017 à 18:55
NHenry
Messages postés15065Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention21 mai 2023
-
3 nov. 2017 à 21:10
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
NHenry
Messages postés15065Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention21 mai 2023157 3 nov. 2017 à 18:56
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és15065Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention21 mai 2023157 3 nov. 2017 à 21:10
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.