Qual é o algoritmo de fatoração mais rápido?
Eu escrevi um programa que tenta encontrar pares amigáveis. Isso requer encontrar as somas dos divisores apropriados dos números.
Aqui está o meu atualsumOfDivisors()
método:
int sumOfDivisors(int n)
{
int sum = 1;
int bound = (int) sqrt(n);
for(int i = 2; i <= 1 + bound; i++)
{
if (n % i == 0)
sum = sum + i + n / i;
}
return sum;
}
Então, eu preciso fazer muita fatoração e isso está começando a se tornar o verdadeiro gargalo no meu aplicativo. Eu digitei um número enorme no MAPLE e ele o considerou incrivelmente rápido.
Qual é um dos algoritmos de fatoração mais rápidos?