Algorytm generujący liczby pierwsze - Sito Eratostenesa
Przedstawiony niżej przykład napisany jest w języku C++ i testowany w środowisku DevC++. Aby kod ten zamienić na program, należy go skompilować w wyżej wymienionym środowisku.
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
//----------------- www.math.edu.pl ------------------
int main(void)
{
unsigned long i, n, count = 0;
cout << "Sito Eratostenesa" << endl;
cout << "Podaj górną granicę: ";
cin >> n;
cout << endl;
int *a = new int;
if (a == 0)
{
cout << "Za mało pamięci" << endl;
return 0;
}
for (i = 2; i < n; i++) a = true;
for (i = 2; i < n; i++)
if (a)
for (int j = i; j*i < n; j++) a = false;
for (i = 2; i < n; i++)
if (a)
{
count++;
cout << i << " ";
}
cout << endl << "Liczba liczb pierwszych: " << count << endl;
system("PAUSE");
return 0;
}
//----------------- www.math.edu.pl ------------------