Bonjour à tous,
Je désire faire une méthode permettant de décomposer un nombre en 2 nombres premiers. Le problème, c'est que j'ai une erreur "missing return statement", pourtant la méthode retourne {-1,-1} , si on ne peut pas décomposer le nombre, et elle retourne {nb1, nb2}, si on peut faire la décomposition, et voici le code :
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public static int[] decomposition(int n){ int div=2; int[] erreur={-1,-1}; if(testPrimalite(n)) return erreur; else { //return erreur; while(div<Math.sqrt(n)){ if(n%div==0){ // Si j'ai trouvé mon diviseur! if(testPrimalite(n/div) && testPrimalite(div)){ //Les deux diviseurs sont ils premiers? int[] res={n/div,div}; return res; //OUI, on les retourne } else return erreur; //NON, on retourne une erreur }else if(div==2)//Si le diviseur est 2, on passe à 3 div++; else div+=2;//Sinon on incrémente de deux en deux } } }
Partager