Cod sursa(job #1913959)

Utilizator ghiaradBadea Dragos ghiarad Data 8 martie 2017 14:52:21
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <cstdio>

using namespace std;
const int NMAX = 1 << 17;
int a,b,n,k,N,cnt;
//int N, i, j, i2, nrprime = 0;
unsigned char V[NMAX];
bool prim[2000005];
FILE *f=fopen("ciur.in","r");
FILE *g=fopen("ciur.out", "w");

int main()
{
    /**fscanf(f, "%d", &n);
    k=1<<n;
    for(int i=1; i<k; ++i)
    {
        fprintf(g,"{");
        for(int j=0; j<n; ++j)
            if((i>>j)&1)fprintf(g, "%d ", j+1);
        fprintf(g,"}\n");
    }
    fclose(f);
    fclose(g);**/

    fscanf(f,"%d", &N);
    for (int i = 2; i <= N; ++i)
        prim[i] = 1;
    for (int i = 2; i <= N; ++i)
        if (prim[i])
        {
            ++cnt;
            for (int j = i+i; j <= N; j += i)
                prim[j] = 0;
        }
    fprintf(g,"%d\n", cnt);

    /**fscanf(f,"%d", &N);
    for (i = 3; i <= N; i += 2) {
        if (V[i >> 4] & (1 << ((i >> 1) & 7))) continue;
        ++nrprime;

        for (j = i + (i2 = i + i); j <= N; j += i2)
            V[j >> 4] |= 1 << ((j >> 1) & 7);
    }
    fprintf(g,"%d\n", nrprime + 1);**/
    return 0;
}