C # - для петли замерзает через странные промежутки времени
Я работаю надЗадача 14 на Project Euler, и мой код, кажется, зависает через произвольные промежутки времени без видимой причины.
static void Main()
{
int maxNum = 0;
int maxLength = 0;
for (int x = 2; x < 1000000; ++x)
{
int num = x;
int length = 0;
while (num != 1)
{
if (num % 2 == 0)
{
num /= 2;
length++;
}
else
{
num = (3 * num) + 1;
length++;
}
}
if (length > maxLength)
{
maxLength = length;
maxNum = x;
}
}
Console.WriteLine(maxNum);
Console.ReadLine();
Число, на котором висит программа, меняется каждый раз, когда я ее запускаю, и, похоже, не соответствует установленным шаблонам. Любые идеи о том, почему это будет висеть так? Заранее спасибо.