Pagini recente » Cod sursa (job #2963203) | Cod sursa (job #3233213) | Cod sursa (job #1600103) | Cod sursa (job #218118) | Cod sursa (job #236423)
Cod sursa(job #236423)
/*
CIURUL LUI ERATOSTHENES
Returneaza numarul de numere prime mai mici sau egale cu x.
*/
#include<stdio.h>
#define infile "ciur.in"
#define outfile "ciur.our"
#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;
}