Pagini recente » Cod sursa (job #2080655) | Cod sursa (job #1366726) | Cod sursa (job #2875216) | Cod sursa (job #204507) | Cod sursa (job #927339)
Cod sursa(job #927339)
#include <cstdio>
#include <bitset>
using namespace std;
int N, R = 0;
bitset<2000002> sir;
int main()
{
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%d", &N);
sir.set();
int p = 2, i;
while ((p * p) <= N)
{
for (i = 2; (i * p) <= N; i++)
sir[i * p] = 0;
// 0 = nu e prim!
for (++p; (p * p) <= N; p++)
if (sir[p]) // Presupun ca e mai rapid decat !sir[p]... De aia am setat tot la 1 initial.
break;
}
for (i = 2; i < N; i++)
if (sir[i]) R++;
printf("%d", R);
return 0;
}