Hallo Leute,
wäre cool, wenn es euch natürlich nur Spass macht und interessiert, eure Laufzeiten für die Primzahlfaktorenzerlegung folgender Zahl angibt:
6750622348964143051956305469326962117763788889781985387
Bei mir liegt die Berechnungszeit bei mehreren Minuten, soll wohl in unter 2 Sekunden machbar sein, wobei der Algorithmus natürlich noch sehr Trivial gehalten ist. Bei der Erkennung ob es sich um eine Primzahl handelt oder nicht, liege ich hier natürlich im 0 ms Bereich.
Wie könnte man es verbessern -> ohne Multithreading!
wäre cool, wenn es euch natürlich nur Spass macht und interessiert, eure Laufzeiten für die Primzahlfaktorenzerlegung folgender Zahl angibt:
6750622348964143051956305469326962117763788889781985387
Bei mir liegt die Berechnungszeit bei mehreren Minuten, soll wohl in unter 2 Sekunden machbar sein, wobei der Algorithmus natürlich noch sehr Trivial gehalten ist. Bei der Erkennung ob es sich um eine Primzahl handelt oder nicht, liege ich hier natürlich im 0 ms Bereich.
Wie könnte man es verbessern -> ohne Multithreading!
Java:
/**
* Test Zerlegung in Primzahlfaktoren (BigInteger).
*
* @param Zu zerlegende Zahl
* @return Liste der BigInteger-Objekte
*/
public static ArrayList<BigInteger> getFaktoren(BigInteger zahl) {
ArrayList<BigInteger> faktoren = new ArrayList<BigInteger>();
BigInteger teiler = new BigInteger("2");
while (!isPrime(zahl)) {
if (zahl.mod(teiler).compareTo(BigInteger.ZERO) == 0) {
faktoren.add(teiler);
zahl = zahl.divide(teiler);
} else {
teiler = teiler.add(BigInteger.ONE);
}
}
faktoren.add(zahl);
return faktoren;
}