Cod sursa(job #1093136)

Utilizator vlady1997Vlad Bucur vlady1997 Data 27 ianuarie 2014 19:15:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
        #include <cstdio>
        using namespace std;
        int nr=1;
        bool ok[10000001];
        void ciur (int n)
        {
            int i, j;
            for (i=1; ((i*i)<<1)+(i<<1)<=n; i++)
            {
                if (ok[i]==false)
                {
                    for (j=((i*i)<<1)+(i<<1); (j<<1)+1<=n; j+=(i<<1)+1) ok[j]=true;
                }
            }
            for (i=1; (i<<1)+1<=n; i++)
            {
                if (ok[i]==false) nr++;
            }
        }
        int main()
        {
            int n;
            freopen("ciur.in","r",stdin);
            freopen("ciur.out","w",stdout);
            scanf("%d",&n);
            ciur(n); printf("%d",nr);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }