Cod sursa(job #277398)

Utilizator endeavourOvidiu Porumb endeavour Data 11 martie 2009 18:26:25
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
//include's
#include <fstream>


//typedef's
typedef char numeFisier[10];


//namespaces
using namespace std;

//declaratii de functii
void citire(numeFisier s);
void afisare(numeFisier s);
void formare(int N);
void numarare(int N);


//variabile
numeFisier input="ciur.in";
numeFisier output="ciur.out";
unsigned N, nr=1;
unsigned long long  ciur[100000];


//main
int main(void)
{
    citire(input);
    formare(N);
    numarare(N);
    afisare(output);

    return 0;
}


//definitii de functii
void citire(numeFisier s)
{
    ifstream fin(s);

    fin>>N;

    fin.close();
}

void afisare(numeFisier s)
{
    ofstream fout(s);

    fout<<nr<<'\n';

    fout.close();
}

void formare(int N)
{
    int i,j;

    for(i=3; i<=N/2; i+=2)
      for(j=i; j<=N/2; j+=2)
        ciur[i*j] = 1;

}

void numarare(int N)
{
    int i;

    for(i=3; i<=N; i+=2)
      nr+= !ciur[i];
}