Cod sursa(job #2020324)
| Utilizator | Data | 9 septembrie 2017 21:22:58 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <stdio.h>
#include <math.h>
#define NMAX 2000000
int n, prime[NMAX];
int main() {
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%d\n", &n);
if (n == 0 || n == 1) {
printf("%d\n", 0);
return 0;
} else if (n == 2) {
printf("%d\n", 1);
return 0;
}
int primes = 1;
for (int i = 3; i < n; i += 2)
if (prime[i] == 0) {
primes++;
for (int j = i + i; j < n; j += i) {
prime[j] = 1;
}
}
printf("%d\n", primes);
return 0;
}