Pagini recente » Cod sursa (job #853176) | Monitorul de evaluare | Cod sursa (job #2615440) | Cod sursa (job #1352572) | Cod sursa (job #1033101)
#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;
}