Рубрики

C ++ программа для сита эратосфена

Учитывая число n, выведите все простые числа, меньшие или равные n. Также дано, что n — небольшое число.
Например, если n равно 10, вывод должен быть «2, 3, 5, 7». Если n равно 20, выходное значение должно быть «2, 3, 5, 7, 11, 13, 17, 19».

C / C ++

// C ++ программа для печати всех простых чисел, меньших или равных
// n сито Эратосфена
#include <bits/stdc++.h>

using namespace std;

  

void SieveOfEratosthenes(int n)

{

    // Создаем логический массив "prime [0..n]" и инициализируем

    // все записи это как правда. Значение в простом [i] будет

    // наконец, ложь, если я не простое число, иначе истина.

    bool prime[n+1];

    memset(prime, true, sizeof(prime));

  

    for (int p=2; p*p<=n; p++)

    {

        // Если простое число [p] не изменилось, то это простое число

        if (prime[p] == true)

        {

            // Обновить все кратные р

            for (int i=p*2; i<=n; i += p)

                prime[i] = false;

        }

    }

  

    // Распечатать все простые числа

    for (int p=2; p<=n; p++)

       if (prime[p])

          cout << p << " ";

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    int n = 30;

    cout << "Following are the prime numbers smaller "

         << " than or equal to " << n << endl;

    SieveOfEratosthenes(n);

    return 0;

}

Выход:

Following are the prime numbers below 30
2 3 5 7 11 13 17 19 23 29

Пожалуйста, обратитесь к полной статье о сите Эратосфена для более подробной информации!

Рекомендуемые посты:

C ++ программа для сита эратосфена

0.00 (0%) 0 votes