Pagini recente » Cod sursa (job #2530712) | Cod sursa (job #2254252) | Cod sursa (job #2680599) | Cod sursa (job #2572999) | Cod sursa (job #1448088)
// http://www.infoarena.ro/problema/ciur
#include <stdio.h>
#define MAX_N 2000001
int prime_numbers(int N) {
char hash[MAX_N] = {0};
int i, prime_numbers = 0;
for (i = 2; i <= N; ++i) {
// means it's not prime, has been marked with
// eratosthene.
if (hash[i] == 1)
continue;
prime_numbers++;
// Mark all multipliers of i as not prime.
int j = 2, multiplier = j * i;
while (multiplier <= N) {
hash[multiplier] = 1;
j++;
multiplier = j * i;
}
}
return prime_numbers;
}
int main() {
FILE *in = fopen("ciur.in", "r"),
*out = fopen("ciur.out", "w");
int N;
fscanf(in, "%d", &N);
fprintf(out, "%d", prime_numbers(N));
fclose(in);
fclose(out);
return 0;
}