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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
|
import java.util.ArrayList;
public class EA6_Aufgabe_2_1 {
// brauchen wir gar nicht
// unten werden die Faktoren der Größe nach getestet
// wenn die Zahl nicht prim ist, wurden die Primfaktoren vorher schon gefunden
public static boolean isPrim(int value) {
if (value < 2) {
return false;
}
for (int i = 2; i * i <= value; i++) {
if ((value % i == 0)) {
return true; // da hattest du false
}
}
return false; // da hattest du true
}
public ArrayList<Integer> zerlege(int n) {
// diamond ergänzt, wir wollen eine generische Liste
ArrayList<Integer> z = new ArrayList<>();
//starte bei 2, das ist auch ein möglicher Primfaktor
// <=, nicht <, besser mit i*i <= n
for (int i = 2; i <= (int) Math.sqrt(n); i++) {
while (n % i == 0) {
z.add(i);
n /= i;
}
}
//letzten Faktor auch noch hinzufügen
if (n != 1)
z.add(n);
return z;
}
public static void main(String[] args) {
EA6_Aufgabe_2_1 ea6 = new EA6_Aufgabe_2_1();
// kein Grund, eine Liste anzulegen, wenn direkt eine neue zugewiesen wird
ArrayList<Integer> ergebnis = ea6.zerlege(3599);
for (int i : ergebnis)
System.out.println("Ich habe gefunden " + i);
}
} |