任务是找到一个至少有 500 个除数的三角形数。
例如 28 有 6 个除数:1,2,4,7,14,28
我的代码最多可用于 200 个除数,但对于 500 个除数,它会永远运行...
有什么办法可以优化代码。例如,我想到了动态优化和记忆,但找不到方法吗?
int sum = 0;
int counter = 0;
int count = 1;
bool isTrue = true;
while (isTrue)
{
counter = 0;
sum += count;
for (int j = 1; j <= sum; j++)
{
if (sum % j == 0)
{
counter++;
if (counter == 500)
{
isTrue = false;
Console.WriteLine("Triangle number: {0}", sum);
break;
}
}
}
count++;
}
Console.WriteLine("Number of divisors: {0}", counter);