Cod sursa(job #1917346)

Utilizator RaTonAndrei Raton RaTon Data 9 martie 2017 12:01:24
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
char c[2000001];
int main()
{
    int n, nr, p, m, i;
    f >> n;
    for(p = 2; p * p <= n; p++)
        if(c[p] == 0)
            for( m = p * p; m <= n; m += p)
                c[m] = 1;
    nr = 0;
    for( i = 2; i <= n; i++ )
        if( c[i] == 0 )
            nr++;
    g << nr;

    /*nr = n - 1; // m2 numarare deodata cu generarea sirului
    for(p = 2; p * p <= n; p++) // ceva mai lenta ca prima
        if(c[p] == 0)
            for( m = p * p; m <= n; m += p){
                    if(c[m] == 0)//ne asiguram ca e prima data cand excludem numarul din multimea numerol prime
                        nr--;
                    c[m] = 1;
            }
    g << nr;*/


    return 0;
}