Cod sursa(job #439020)
| Utilizator | 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;
}
