Cod sursa(job #421747)

Utilizator Smaug-Andrei C. Smaug- Data 21 martie 2010 16:16:14
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>

int main(){

  freopen("ciur.in", "r", stdin);
  freopen("ciur.out", "w", stdout);

  char prime[2000005];
  long int N, nPrime, i, j;

  scanf("%ld", &N);

  nPrime = 0;
  for(i = 2; i <= N; i++)
    prime[i] = 1;
  for(i = 2; i*i <= N; i++){
    if(prime[i]){
      ++nPrime;
      for(j = i+i; j <= N; j+= i)
	prime[j] = 0;
    }
  }
  for( ; i <= N; i++)
    if(prime[i])
      ++nPrime;

  printf("%ld\n", nPrime);

  return 0;

}