Pagini recente » Cod sursa (job #2647536) | Cod sursa (job #2324918) | Cod sursa (job #117396) | Cod sursa (job #741021) | Cod sursa (job #1699497)
# include <stdio.h>
# include <stdlib.h>
# define MAX_N 2000001
# define MAX_PRIMES 100000
int low[MAX_N];
int primes[MAX_PRIMES];
int primes_length;
void ciur( int n ) {
primes_length = 0;
int i, j;
for ( i = 2; i <= n; i ++ ) {
if ( !low[i] ) {
low[i] = i;
primes[primes_length] = i;
primes_length ++;
}
for ( j = 0; j < primes_length && primes[j] <= low[i] && primes[j] * i <= n; j ++ )
low[primes[j] * i] = primes[j];
}
}
int main() {
FILE *fin = fopen( "ciur.in", "r" ), *fout = fopen( "ciur.out", "w" );
int n, i, S;
fscanf( fin, "%d", &n );
ciur( n );
S = 0;
for ( i = 2; i <= n; i ++ )
S += ( low[i] == i );
fprintf( fout, "%d", S );
fclose( fin );
fclose( fout );
return 0;
}