Primfaktorzerlegung in Java?
Hallo!
Ich schreibe morgen eine Informatik Klausur, und bräuchte Hilfe bei einer Aufgabe, zum Üben. Ich komme einfach nicht weiter, die Aufgabe :
Die Methoden, mit dem wir die Aufgabe lösen sollen, sind while&for Schleifen, eindimensional-arrays und natürlich modulo
MfG
Vielen Dank für die Hilfe :D
2 Antworten
primzahlen in das array (oder du solslt auch noch primzahlen jeweils finden )
das while läuft solange bis du eine lösung hast(letzte teilung ergibt 1)
die forschleife fängt immer wieder von vorne an das array (nach einem teiler) durch zu gehen , wenn übriger wert modulo zahl == 0 ist ist es teilbar . wenn gefunden immer teilen durch den verbleibenden wert und diesen für die neue runde nehmen .
die gefunden werte ausgeben oder auch in ein array packen .
ich glaub so müsste das funktionieren .
als beispiel
28
28 : 2 = 14 yeah
14 :2 = 7 yeah
7 :2 = määä
7 :3 = määä
7: 5 = määä
7 : 7 = 1 yeah & bingo
2*2*7
30
30 : 2 = 15 yeah
15 : 2 = mää
15 : 3 = 5 yeah
5 : 2 = määä
5: 3 = mää
5:5 = 1 yeah & bingo
2*3*5
der algo kann noch optimiert werden im ablauf :)
Und wo ist explizit dein Problem dabei? Oder erwartest du die direkte, ausprogrammierte Lösung?
Wie du vorgehen kannst: nutze eine Schleife. Nimm eine prim-Variable und starte diese 2 ...
Jetzt teilst du die Zahl so oft durch deine prim-Variable, bis es nicht mehr glatt teilbar ist. Entweder ist die Zahl jetzt 1 oder nicht. Wenn nicht, gehe zur nächsten Primzahl und wiederhole den Vorgang.
Die Faktoren notierst du dir währenddessen, z.B. in einer Array-List