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 :
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
       }
       }
}
Merci d'avance