Cod sursa(job #2238569)

Utilizator filicriFilip Crisan filicri Data 6 septembrie 2018 12:44:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

char v[2000004];

int main()
{
    int n,c=2;
    f>>n;
    for (int i=3;i*i<n;i+=2)
    {
        if (v[i]==0) for (int j=i*i;j<=n;j+=2*i) v[j]=1;
    }
    for (int i=1;i<=(n+1)/6;i++)
    {
        if (6*i-1<=n && v[6*i-1]==0) c++;
        if (6*i+1<=n && v[6*i+1]==0) c++;
    }
    if (n==1) g<<"0";
    else if (n==2) g<<"1";
    else if (n==3) g<<"2";
    else g<<c;
    f.close();
    g.close();
    return 0;
}