Cod sursa(job #599296)
| Utilizator | Data | 28 iunie 2011 14:35:13 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
/*
* ciur.c
*
* Created on: Jun 28, 2011
* Author: mihai
*/
#include <stdio.h>
#include <stdlib.h>
int N;
int main() {
freopen("ciur.in", "r", stdin);
//freopen("ciur.out", "w", stdout);
scanf("%d", &N);
char* nr = (char*) calloc(N + 1, sizeof(char));
int i = 2, j, nr_prime = 0;
while (i * i <= N) {
for (j = 2 * i; j <= N; j += i) {
if (!nr[j]) {
nr[j] = 1;
if (j != i)
nr_prime++;
}
}
i++;
while (nr[i])
i++;
}
printf("%d", N - nr_prime - 1);
return 0;
}
