Pagini recente » Cod sursa (job #1073197) | Cod sursa (job #2143011) | Cod sursa (job #2593006) | Cod sursa (job #1524864) | Cod sursa (job #2353772)
#include <stdio.h>
#include <stdlib.h>
void do_nothing(int null)
{}
int main()
{
int N;
FILE *read=fopen("ciur.in","r");
FILE *write=fopen("ciur.out","w");
int null;
null=fscanf(read,"%d",&N);
do_nothing(null);
int *marked=(int*)calloc(N+1,sizeof(int));
int number_of_primes=0;
int first_unchecked=2;
if(N==1)
fprintf(write,"%d\n",0);
else
{
marked[2]=1;
number_of_primes++;
while(first_unchecked<=N)
{
for(int i=first_unchecked;i*first_unchecked<=N;i++)
marked[i*first_unchecked]=1;
while(first_unchecked<=N+1)
{
if(marked[first_unchecked]==0)
break;
first_unchecked++;
}
if(first_unchecked==N+1)
break;
marked[first_unchecked]=1;
number_of_primes++;
}
}
fprintf(write,"%d\n",number_of_primes);
free(marked);
fclose(read);
fclose(write);
return 0;
}