Cod sursa(job #630495)

Utilizator bogdanrnRadu Bogdan Nicolae bogdanrn Data 5 noiembrie 2011 17:27:48
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>


using namespace std;

int main()
{
    ifstream f("ciur.in");
    ofstream g("ciur.out");
    unsigned int n=2;
    unsigned int i=2;
    unsigned int mult=2;
    unsigned int j=2;
    unsigned int nr=0;
    f>>n;
    bool x[n+1];

    while (j<=n){
        if (x[j]==false){
            nr++;
            x[j]=true;
            mult=j;
            if (j*j<=n){
                i=j*j;
                while (i<=n){
                    x[i]=true;
                    if (j*(mult+1)<=n)
                        {
                            i=j*(++mult);
                        } else {
                            break;
                        }
                }
            }
        } else {
            j++;
        }
    }
    g<<nr;
    return 0;
}