Clasa a IX-a · Divizibilitate și numere primeRead in English

Primele n numere prime în C++

În engleză: The first n prime numbers

Altă complexitateC++1740 de linii1 exemplu

Ideea

Luăm pe rând candidații 2, 3, 4, ... și îi testăm cu testul de primalitate până la √x. Ne oprim după ce am afișat n numere prime.

Descrierea în engleză

We take the candidates 2, 3, 4, ... one by one and test them with the primality test up to √x. We stop after printing n prime numbers.

Complexitate
aproximativ O(n · √P), unde P este al n-lea număr prim
Clasa
Clasa a IX-a (Grade 9)

Exemple

Exemplul 1

Intrare

10

Ieșire așteptată

2 3 5 7 11 13 17 19 23 29

Codul C++

Codul complet, cu comentarii în română. Îl poți modifica liber și îl poți reseta oricând.

primele-n-numere-prime.cpp
/*
 * Titlu: Primele n numere prime
 * Clasa: 9
 * Capitol: Divizibilitate și numere prime
 * Descriere: Luăm pe rând candidații 2, 3, 4, ... și îi testăm cu testul de
 *            primalitate până la √x. Ne oprim după ce am afișat n numere prime.
 * Complexitate: aproximativ O(n · √P), unde P este al n-lea număr prim
 *
 * Exemplu
 * Intrare: 10
 * Ieșire: 2 3 5 7 11 13 17 19 23 29
 */
#include <iostream>
using namespace std;

int main()
{
    int n, gasite = 0;
    cin >> n;
    for (long long x = 2; gasite < n; x++)
    {
        bool prim = true;
        for (long long d = 2; d * d <= x; d++)
        {
            if (x % d == 0)
            {
                prim = false;
                break;
            }
        }
        if (prim)
        {
            cout << x << ' ';
            gasite++;
        }
    }
    cout << '\n';
    return 0;
}

Rulează pe un g++ adevărat (C++17, -O2) prin Compiler Explorer. Programele trebuie să se termine repede: există o limită de timp.