Pagini recente » Cod sursa (job #3174485) | Cod sursa (job #1106650) | Cod sursa (job #551371) | Cod sursa (job #719947) | Cod sursa (job #236424)
Cod sursa(job #236424)
/*
CIURUL LUI ERATOSTHENES
Returneaza numarul de numere prime mai mici sau egale cu x.
*/
#include<stdio.h>
#define infile "ciur.in"
#define outfile "ciur.out"
#define xmax 2*1000*1000+1
char prim[xmax];
int x; //numarul pana la care numaram numarul de numere prime
int eratosthenes(char prim[], int x)
{
int i,j,k=0;
for(i=2;i<x;i++)
if(!prim[i]) //daca numarul este prim
{
k++; //memoram ca avem un nou numar prim;
for(j=i+i;j<x;j+=i) prim[j]=1; //toate aceste numere nu mai sunt prime
}
return k;
}
int main()
{
//deschidem fisiere
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
scanf("%d",&x); //citim pe x
printf("%d\n",eratosthenes(prim,x)); //scriem numarul de numere prime
//inchidem fisiere
fclose(stdin);
fclose(stdout);
return 0;
}