Pagini recente » Cod sursa (job #177306) | Cod sursa (job #1649814) | Cod sursa (job #2483539) | Cod sursa (job #625846) | Cod sursa (job #720582)
Cod sursa(job #720582)
#include<stdio.h>
#include<assert.h>
#include<math.h>
#include<algorithm>
#include<vector>
using namespace std;
const int knmax = 2000005;
int upper, sol, sieve[knmax];
void read(){
assert(freopen("ciur.in", "r", stdin) != NULL);
scanf("%d", &upper);
}
void init(){
for(int i = 1; i <= upper; ++i)
sieve[i] = i;
}
void solve(){
init();
int i, j;
for(i = 2; i <= upper; ++i)
if(sieve[i] == i){
++sol;
for(j = i * i; j <= upper; j = j + i)
sieve[j] /= i;
}
}
void write(){
assert(freopen("ciur.out", "w", stdout) != NULL);
printf("%d",sol);
}
int main(){
read();
solve();
write();
return 0;
}