我写了一个试图找到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;
}
Run Code Online (Sandbox Code Playgroud)
所以我需要做很多因子分解,这开始成为我应用程序的真正瓶颈.我在MAPLE中输入了一个巨大的数字,它将它快速地考虑在内.
什么是更快的分解算法?