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.
/*
* 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.