10 ^ 12 未満の大きな数の素因数分解を見つけたいです。私はこのコードを取得しました(Javaで):
public static List<Long> primeFactors(long numbers) {
long n = numbers;
List<Long> factors = new ArrayList<Long>();
for (long i = 2; i <= n / i; i++) {
while (n % i == 0) {
factors.add(i);
n /= i;
}
}
if (n > 1) {
factors.add(n);
}
return factors;
}
まず第一に、上記のアルゴリズムの複雑さは??見つけるのに苦労しています??
また、素数である大きな数には遅すぎます。
より良いアルゴリズムはありますか、それともこのアルゴリズムを最適化する方法はありますか??