Cod sursa(job #145198)

Utilizator hulparuadrianhulparu adrian hulparuadrian Data 28 februarie 2008 16:19:28
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
char ciur[2000001];int np=0;
int prime[200002];
int i;
int n;
void make_ciur(int n)
{
for(i=2;i<=2000000;ciur[i]='1',i++);
for(i=2;i<=n;i++)
                 if (ciur[i]=='1')
                    {
                                np++;
                                prime[np]=i;
                       for(int j=2;j*i<=n;j++)
                               ciur[i*j]='0';         
                                }    }


int main()
{
 f>>n;
 int left;
 make_ciur(n);
 g<<np<<"\n";
 if (np<=1000) for(i=1;i<=np;g<<prime[i]<<" ",i++);
 else 
 for(i=np-999;i<=np;i++)
 g<<prime[i]<<" ";   
    
    f.close();
    g.close();
    return 0;
    }