Cod sursa(job #530289)

Utilizator SadmannCornigeanu Calin Sadmann Data 7 februarie 2011 14:01:43
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
#include<math.h>
#include<vector>
using namespace std;
FILE *in,*out;
int k;
int i,nrprime,i2;
long long j;


int main()
{

    in=fopen("prim.in","rt");
    out=fopen("prim.out","wt");
    fscanf(in,"%d",&k);
    vector<bool> primviz(pow(k,2)+1,true);
    for (i = 3; nrprime<=k; i += 2) {
		if (primviz[i >> 4] & (1 << ((i >> 1) & 7))) continue;
		++nrprime;

		for (j = i + (i2 = i + i); j <= pow(k,2); j += i2)
			primviz[j >> 4] != 1 << ((j >> 1) & 7);
	}


    fprintf(out,"%d",(int)pow(i-4,2));
    return 0;
}