Cod sursa(job #1861322)

Utilizator shantih1Alex S Hill shantih1 Data 28 ianuarie 2017 19:35:23
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <iostream>
#define nmax 2000000
using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int n, i, j, nr;
bool A[nmax];
int main() {

    fin>>n;
    
    /* i: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
     A[i]: 0 0 0 1 0 1 0 1 1 1  0  1  0  1  1   */
    
    for (i = 2; i <= n; i++)
        if (A[i] == 0)
        {
            nr++;
            for (j =i * 2; j <= n; j += i)  A[j] = 1;
        }
            
    fout << nr << "\n";
}
// Andrei mi-a aratat ciurul lui eratostenes (nici acum nu stiu cum se scrie...)
// o problema mare care o aveam era ca depaseam memoria si asta pentru ca in loc de bool A[] eu aveam int A[];