Cod sursa(job #2238567)

Utilizator filicriFilip Crisan filicri Data 6 septembrie 2018 12:41:38
Problema Ciurul lui Eratosthenes Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int v[2000004];
int main()
{
    int n,c=0;
    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==2) g<<"1";
    else if (n==3) g<<"2";
    else if (n>=4)
    {
        c+=2;
        g<<c;
    }
    f.close();
    g.close();
    return 0;
}