Pagini recente » Cod sursa (job #453662) | Cod sursa (job #434758) | Cod sursa (job #1019454) | Cod sursa (job #808100) | Cod sursa (job #1830011)
#include <iostream>
#include <stdio.h>
#include <bitset>
using namespace std;
FILE *f,*g;
bitset <2000002> v; //elementele vecotului coincid cu pozitia (vector de frecventa //bitsetu e un tip de date, care aloca 18mb si foloseste cat are nevoie adica 1mb
int main()
{
f=fopen("ciur.in","r");
g=fopen("ciur.out","w");
int n,s=0,i,j;
fscanf(f,"%d",&n);
for(i=2;i<=n;i++) //parcurgem vecotrul incepand cu al 2-lea, fiindca 1 nu e prim prin conventie
{
if(v[i]==0) //DOAR daca gasim un vector prim, verificam daca are multiplii, pe care ii scoatem ulterior din vector
{
for(j=i*2;j<=n;j+=i)
{
v[j]=1; //scoatem multiplul
}
s++;
}
}
fprintf(g,"%d",s);
fclose(f);
fclose(g);
return 0;
}