Cod sursa(job #1960322)

Utilizator andreigasparoviciAndrei Gasparovici andreigasparovici Data 10 aprilie 2017 12:58:59
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;

#define optimized __inline__ __attribute__((always_inline)) __attribute__((optimize("-O3"))) void

const int MAXN = 2000001;

int n, k;
bool neprim[MAXN];

optimized ciur()
{
    for(int i = 4;i <= n; i += 2)
        neprim[i]=1;

    for(int i = 3;i*i <= n; i += 2)
    {
        if(!neprim[i])
        {
            for(int j = i<<1 ;j <= n;j += i)
                neprim[j] = 1;
        }
    }
    ++k;
    for(int i = 3; i <= n;i += 2)
        if(!neprim[i])
            ++k;
}

int main()
{
    fscanf(fopen("ciur.in","r"),"%d",&n);
    ciur();
    fprintf(fopen("ciur.out","w"),"%d",k);
    return 0;
}