Pagini recente » Monitorul de evaluare | Cod sursa (job #185686) | Cod sursa (job #2931054) | Cod sursa (job #101050) | Cod sursa (job #648831)
Cod sursa(job #648831)
#include<cstdio>
#include<cmath>
#include<vector>
using namespace std;
struct bit{unsigned a : 1;};
vector <bit> biti;
int main(){
freopen ("ciur.in", "r", stdin), freopen("ciur.out", "w", stdout);
int i, n, j, radPatrata, nr = 0;
scanf("%d", &n);
biti.assign(n + 1, (bit){1});
radPatrata = (int)sqrt(n);
for (i = 2; i <= radPatrata; i++)
for (j = i * 2; j <= n; j += i) biti[j].a = 0;
//numar cate numere prime sunt
for (i = 2; i <= n; i++) nr += biti[i].a;
printf("%d\n", nr);
return 0;
}