タスクは、少なくとも 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);