Cod sursa(job #505774)
| Utilizator | Data | 3 decembrie 2010 22:33:09 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include<iostream.h>
#include<fstream.h>
#include<math.h>
long int n;int i,j,k,a[2000000];
int main()
{
fstream f("ciur.in",ios::in);
fstream g("ciur.out",ios::out);
f>>n;
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;
}