Cod sursa(job #783447)
| Utilizator | Data | 2 septembrie 2012 21:22:24 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#include <fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int n,nr,x,v[2000000],i,t,y=1;
int main()
{f>>n;
for(i=1;i<=n-1;i++)
v[i]=i+1;
x=2;
nr=1;
t=2;
while(y==1)
{for(i=t;i<=n-1;i++)
if(v[i]%x==0)
v[i]=0;
i=t;
while(v[i]==0&&i<n-1)
i++;
if(v[n-1]==0&&i==n-1)
y=0;
else
{if(i<n-1)
{t=i+1;
x=v[i];
nr++;
}
else
{nr++;
y=0;}
}
}
g<<nr;
return 0;
}
