Cod sursa(job #1033101)

Utilizator bogobatBerbece Daniel bogobat Data 16 noiembrie 2013 14:26:44
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda cei_mici3 Marime 0.73 kb
#include <fstream>
#include <cmath>
using namespace std;
int n,nr,i;
long a;
bool isPrime(int n)
{
    // Daca este 2 sau 3 atunci este prim
    if(n == 2 || n == 3) return true;
    // Daca este divizibil cu 2 sau 3 atunci NU este prim
    if(n % 2 == 0 || n % 3 == 0) return false;
    for(int k = 1; 6*k-1 <= sqrt(n); k++)
    {
        // Daca este divizibil cu 6*k -/+ 1 atunci NU este prim
        if(n % (6*k-1) == 0 || n % (6*k+1) == 0) return false;
    }
    // Daca am ajuns aici, inseamna ca este prim
    return true;
}
int main()
{ifstream f("ciur.in");
ofstream g("ciur.out");
f>>a;
for(int i = 2; i <= a; i++)
        if(isPrime(i)) nr++;

     g<<nr;
     f.close();
     g.close();

    return 0;
}