Cod sursa(job #145173)
Utilizator | hulparu adrian hulparuadrian | Data | 28 februarie 2008 15:55:53 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.72 kb |
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
char ciur[2000000];int np=0;
int prime[1002];
int i;
int n;
void make_ciur(int n)
{
for(i=2;i<=n;i++)
if (ciur[i]==0)
{
np++;
if(np<=1000) prime[np]=i;
for(int j=2;j*i<=n;j++)
ciur[i*j]=1;
} }
int main()
{
f>>n;
int left;
make_ciur(n);
g<<np<<"\n";
if (np>1000) left=1000;
else left=np;
for(i=1;i<=left;i++)
g<<prime[i]<<" ";
f.close();
g.close();
return 0;
}