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();

Число, на котором висит программа, меняется каждый раз, когда я ее запускаю, и, похоже, не соответствует установленным шаблонам. Любые идеи о том, почему это будет висеть так? Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос