Lösungsvorschlag 5.2 - Aufgabe 2

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
public void primfaktorZerlegungArray(long zahl){
 
//zahl wird für die Ausgabe in einer Variable "konserviert"
long n=zahl;
 
//Festellung der maximalen Länge des Arrays
int anzahlMax = (int) Math.ceil(Math.log10(zahl)/Math.log10(2));
 
//Variable um die Anzahl der im Array enthaltenen Zahlen festzuhalten
int i=0;
 
//Deklaration des Arrays
long []primf = new long[anzahlMax];
 
//Ermittlung der Primfaktoren
for (long j = 2; j <= zahl; j++ ) {
            // Ist j Primfaktor?
            if (zahl % j == 0) {
                // Primfaktor im Array sichern und Arrayindex um 1 erhöhen
                primf[i]=j; i++;
                // zahl ändern
                zahl = zahl/j;
                // j erneut auf Startwert 2 (j++ !) setzen
                j = 1;
            }
        }
 
//Ausgabe der Ergebnisses der Primfaktorenzerlegung
System.out.print("Die Zahl "+n+" lässt sich in folgende Primfaktoren zerlegen: "+primf[0]);
for (int k=1; k<i;k++){System.out.print("*"+primf[k]);}
}