Cod sursa(job #1010614)
Utilizator | Data | 15 octombrie 2013 12:50:57 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <cstdio>
using namespace std;
FILE *f,*g;
int main()
{
f=fopen("ciur.in","r");
g=fopen("ciur.out","w");
long n,i,nr=0;
char A[2000001];
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
A[i]=0;
}
int k,p=2;
while(p<=n)
{
if(A[p]==0)
{
nr++;
k=p+p;
while(k<=n)
{
A[k]=1;
k=k+p;
}
}
p++;
}
fprintf(g,"%d\n",nr);
return 0;
}