Cod sursa(job #929696)
Utilizator | Data | 27 martie 2013 10:38:31 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <fstream>
using namespace std;
int a[2000001],n,k,p,s,i;
int main()
{
ifstream fin("ciur.in");
ofstream fout("ciur.out");
fin>>n;k=2;
while(k<=n)
{
a[k]=1;
p=k;
s++;
while(p+k<=n)
{
p=p+k;
a[p]=1;
}
for(i=k;i<=2000000;i++)if(a[i]==0){k=i;i=2000001;}
}
fout<<s;
fin.close();
fout.close();
return 0;
}