
/**
 * Zerlegt eine Zahl in deren Primfaktoren
 * Nutzt if ... bedingungen
 * 
 * @author docschroeder
 * @version 13.09.2012
 */
public class Primfaktoren
{

    public Primfaktoren(long pzahl)              //long bedeutet "große Integer"
    {
        zerlegen (pzahl);                       //Konstruktor wird bereits mit Parameter aufgerufen und gibt diesen
    }                                            //direkt an Methode weiter

    public void zerlegen(long pz) {
        boolean isPrimzahl = true;              //true als Startwert
        long faktor = 3;                    //Startwert für weitere Zerlegung, ab 3 in zweier-Schritten

        System.out.println("________________");
        System.out.print(pz + " = ");

        while (pz%2==0) {                   //erst wird die 2 abgeprüft
            System.out.print(2 + "*");
            pz/=2;
            if(pz!=1) {
                isPrimzahl = false;             //offenbar ja durch 2 teilbar und nicht gleich 2, also keine Primzahl
            }
        }

        while (faktor<=pz) {
            while (pz%faktor==0) {              //dann die 3 und ab dann in 2er Schritten
                System.out.print(faktor + "*");
                pz/=faktor;
                if(pz!=1) {
                    isPrimzahl = false;     //offensichtlich mindestens 1x durch ANDERE Zahl teilbar, sonst wird pz 1
                }
            }
            faktor+=2;                      //in 2er Schritten
        }

        System.out.println("1" + "");
        System.out.println("Zahl ist Primzahl: " + isPrimzahl);
    }
}

