Cod sursa(job #505802)
Utilizator | Data | 4 decembrie 2010 08:24:21 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include<iostream.h>
#include<fstream.h>
#include<math.h>
long int n;
long i,j,k;
int a[2000001];
int main()
{
fstream f("ciur.in",ios::in);
fstream g("ciur.out",ios::out);
f>>n;
a[2]=1;
for(i=3;i<=n;i=i+2)
a[i]=1;
for(i=3;i<=sqrt(n);i=i+2)
if(a[i]==1) {
k=(n-i)/i;
j=2;
while(j<=k+1) {
a[i*j]=0;
j=j+1;
}
}
k=0;
for(i=3;i<=n;i=i+2)
if(a[i]==1)k++;
g<<k+1;
f.close();g.close();
return 0;
}