# Primfaktorzerlegung Rekursiv



## buffy2299s (19. Jun 2017)

Hallo Leute,

ich muss eine Primfaktorzerlegung durchführen. Den unterstehenden Code habe ich bis jetzt, aber es zeigt mir in Eclipse immer noch Fehler an. Kann mir vielleicht jemand bitte helfen?
Danke

```
import java.util.Scanner;

public class Hilfe{
  
public static void main(String [] args){
  
    Scanner scan= new Scanner(System.in);
    int zahl = scan.nextInt();
    scan.close();
    System.out.println(method(zahl));
  
}
public static int[] method(int zahl){

        return method[](zahl, zahl - 1);

    }

   

    private static int method(int zahl, int m){

        if(zahl==0||zahl==1){

            return 1;

        }

        else if(zahl == 2){

            return 1;

        }

        if(m==1 || m==0){

            return 1;

        }

        else if (zahl % m == 0){

            return 1;

        }

        else{

            return method(zahl,m-1);

        }  

    }




}
```


----------



## DrZoidberg (20. Jun 2017)

Du kannst eine Methode nicht mit "method[](...)" aufrufen. Eckige Klammern kann man an der Stelle nicht verwenden. Ausserdem kann deine Methode "method" immer nur 1 zurückliefern und keinen anderen Wert.
Hier ist mal eine nicht rekursive Lösung. Die musst du jetzt nur noch in eine rekursive Variante übersetzen.

```
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Prim {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int zahl = scan.nextInt();
    System.out.println(primFaktoren(zahl));
  }

  static List<Integer> primFaktoren(int zahl) {
    List<Integer> faktoren = new ArrayList<>();

    while(zahl % 2 == 0) {
      faktoren.add(2);
      zahl /= 2;
    }

    for(int m = 3; m * m <= zahl; m += 2) {
      while(zahl % m == 0) {
        faktoren.add(m);
        zahl /= m;
      }
    }

    if(zahl > 1) faktoren.add(zahl);

    return faktoren;
  }
}
```


----------



## VfL_Freak (20. Jun 2017)

Moin,


buffy2299s hat gesagt.:


> aber es zeigt mir in Eclipse immer noch Fehler an


im übrigen bitte IMMER die konkrete Fehlermeldung mit angeben (Stichwort: StackTrace).
Danke 
VG Klaus


----------

