我写了一个试图找到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中输入了一个巨大的数字,它将它快速地考虑在内.
什么是更快的分解算法?
在我们等待量子计算机的同时,是否可以编写一个软件模拟?我怀疑答案是否定的,但希望之所以不这样做,将会对这个谜团有所启发.