Pagini recente » Cod sursa (job #438161) | Cod sursa (job #1052682) | Cod sursa (job #1834382) | Cod sursa (job #277565) | Cod sursa (job #1236254)
//Cerinta: Dandu-se un numar natural N, sa se determine numarul numerelor
// prime mai mici sau egale cu N.
// Spunem ca un numar natural x este prim daca si numai daca x > 1
// si singurii sai divizori sunt 1 si x.
#include <fstream>
using namespace std;
//class PrimeNumbersSieve1
bool p[1000001]; int n;
//p[i] == 0 if i is prime
int ciur(int n)
{
int i, j, nr;
nr=0;
for (i = 2; i <= n; ++i)
{
if (p[i] == 0)
{
nr++;
for (j = i * i; j <= n; j = j+ i)
// e optimizat pt ca nu e de la i+i daca se iau exeple se va vedea ca pt 5
//10 a fost marcat de 2 , iar 15 de 3, iar 20 de 2
{
p[j] = 1;
}
}
}
return nr;
}
int main()
{
ifstream f("ciur.in");
ofstream g("ciur.out");
f>>n;
g<<ciur(n);
g.close();
f.close();
return 0;
}