Cod sursa(job #1477892)

Utilizator BodStfBodoarca Stefan BodStf Data 27 august 2015 12:30:06
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>

const int maxn = 2000005;
 
bool ciur[maxn];
int n, cnt;
 
int main()
{
	FILE* f1,*f2;
	f1=fopen("ciur.in","r");
	f2=fopen("ciur.out","w");
	fscanf(f1,"%d",&n);
  
    /// fac ciurul propriu-zis
    ciur[1] = 1;
    for(int i = 2 ; i <= n;  ++ i) {
        if(ciur[i] == 0) { /// i este rpim si trebuie sa marchez toti multipli sai
            /// i  este prim => un nou numar prim <= n
            cnt ++;
            for(int j = i + i ; j <= n ; j = j + i)
                ciur[j] = 1;
        }
    }
    fprintf(f2,"%d",cnt);
    return 0;
}