Написанный ниже код пытается определить все простые числа до 100. Он выводит 1, 2 и 5. Может ли кто-нибудь увидеть причину, по которой он не может продолжить работу после первых 3?

Я знаю, что есть некоторые настройки эффективности, которые я могу сделать (только числа коэффициентов и т.д.), но просто пытаюсь сначала понять основную (избыточную) концепцию. Я полный ноб, просто пытаюсь усовершенствовать свою интуицию в программировании, поэтому я знаю, что это, вероятно, не самое элегантное решение, но меня больше интересует, почему оно не работает.

Благодарю за любую помощь... С НОВЫМ ГОДОМ!

static void Main(string[] args)
{
    int q = 100;
    for (int i = 1; i < q; i++)
    {
        if ((q % i) == 0)
        {
            bool isPrime = true;
            for (int j = 2; j < i; j++)
            {
                if ((i % j) == 0)
                {
                    isPrime = false;
                }
            }

            if (isPrime == true)
            { 
                Console.WriteLine(i + " is a prime number... hopefully.");
            }
        }
    }
    Console.ReadKey()
}

Tom

Ответов: 1

Ответы (1)

q%i фильтрует результаты до простых факторов 100, которыми являются 1, 2, 5

Если вы удалите эту часть, все будет работать нормально.

2022 WebDevInsider