Cod sursa(job #1449391)

Utilizator ChicotRadu Stefan Chicot Data 9 iunie 2015 14:29:37
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
/*
 * main.c
 *
 *  Created on: Jun 9, 2015
 *      Author: Admin
 */
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(void)
{
	int *a=0;
	int i,j;
	int N,nr=0;

	FILE *in;
	FILE *out;

	in=fopen("ciur.in","r");
	out=fopen("ciur.out","w");

	fscanf(in,"%d", &N);

	a=malloc(N*sizeof(int));

	for(i=0;i<=N;++i)
	{
		a[i]=1;
	}

	a[0]=0;a[1]=0;

	for(i=2;i<ceil(sqrt(N));++i)
	{
		if(a[i]==0)
		{
			continue;
		}
		else
		{
			for(j=i*i;j<=N;j+=i)
			{
				a[j]=0;
			}
		}

	}

	for(i=0;i<=N;++i)
	{
		if(a[i]==1)
		{
			nr+=1;
		}
	}

	fprintf(out,"%d", nr);

	return 0;

}