Cod sursa(job #1247775)

Utilizator Andru_Andru Felipe Zuniga Andru_ Data 23 octombrie 2014 19:34:54
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
//
//  main.cpp
//  Ciur
//
//  Created by Andru Zuniga on 23.10.2014.
//  Copyright (c) 2014 Zuniga Andru Felipe. All rights reserved.
//

#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

int n;
int numerePrime = 0;
vector<bool> neprime;

int main(int argc, const char * argv[]) {
    ifstream f("ciur.in");
    
    f >> n;
    
    f.close();
    
    neprime.resize(n + 1);
    
    int radical = sqrt(n);
    for (int i = 2; i <= radical; i++) {
        if (!neprime[i]) {
            numerePrime++;
            for (int j = i + i; j <= n; j += i) {
                neprime[j] = true;
            }
        }
    }
    
    for (int i = radical + 1; i <= n; i++) {
        if (!neprime[i]) {
            numerePrime++;
        }
    }
    
    ofstream g("ciur.out");
    
    g << numerePrime;
    
    g.close();
    
    return 0;
}