Cod sursa(job #439020)

Utilizator mayi_rmbunget marius andrei mayi_rm Data 11 aprilie 2010 11:43:48
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>
#include <stdlib.h>
int main (){
	int  n,i,j,k,*p;
	FILE *f,*g;
f=fopen("ciur.in","r");
g=fopen("ciur.out","w");
fscanf(f,"%d",&n);

	p=(int*)malloc(n*sizeof(int));
p[0]=1;
p[1]=1;
i=2;
while(i<=n){
	p[i]=0;
	i++;
}
for(i=2;i<=sqrt(n)+1;i++){
	if(p[i]==0){
	j=i;
		for(k=2*j;k<=n;k=k+j){
		p[k]=1;
		}
	}
}
k=0;
for(i=0;i<n;i++)
	if(p[i]==0)
	k++;
fprintf(g,"%d",k);
free(p);
return 0;
}