Cod sursa(job #591840)
| Utilizator | Data | 25 mai 2011 18:10:13 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 20 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <stdio.h>
#include <stdlib.h>
int ciur(int n)
{
FILE *g;
g=fopen("ciur.out","w");
int i,*a,p=2,k=0;
a=(int*)malloc(n*sizeof(int));
for(i=2;i<=n;i++)
a[i]=1;
while(p*p<n)
{
for(i=2;i<=n/2;i++)
{a[i*p]=0;}
p++;
while(a[p]!=1)
p++;
}
for(i=2;i<=n;i++)
if(a[i]==1)
k++;
return k;
}
int main()
{
int n;
FILE *f,*g;
f=fopen("ciur.in","r");
g=fopen("ciur.out","w");
fscanf(f,"%d",&n);
fprintf(g,"%d",ciur(n));
fclose(g);
fclose(f);
return 0;
}
