Cod sursa(job #147280)
Utilizator | Data | 2 martie 2008 19:07:01 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
using namespace std;
#define input "ciur.in"
#define output "ciur.out"
#define Nmax 2000002
int main()
{
ifstream fin(input);
ofstream fout(output);
int n,nr=0,rsp[1005];
char x[Nmax];
memset(x,'0',sizeof(x));
fin>>n;
for(int i=2;i<=n;++i)
if(x[i]=='0')
{
nr++;
if(nr<1001)
rsp[nr]=i;
for(int j=i*i;j<=n;j+=i) x[j]='1';
}
fout<<nr<<"\n";
for(int i=1; (i<=nr) && (i<=1000); i++)fout<<rsp[i]<<" ";
fin.close();
fout.close();
return 0;
}