Я написал программу, которая пытается найти Amicable Pairs. Это требует нахождения сумм собственных делителей чисел.
Вот мой текущий метод sumOfDivisors()
:
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;
}
Поэтому мне нужно сделать много факторизации, и это начинает становиться настоящим узким местом в моем приложении. Я набрал огромное количество в MAPLE, и он произвел безумно быстро.
Что является одним из быстрых алгоритмов факторизации?