Cod sursa(job #760224)

Utilizator iris88Nagy Aliz iris88 Data 20 iunie 2012 17:20:54
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <iostream>
#include <fstream>
#include <list>
#include <limits.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <stdio.h>
#include <algorithm>
#include <deque>
#include <string.h>
#include <string>
#define NMAX 2000002
using namespace std;
int next_p(int i, vector<bool> &prime)
{
	for (int j=i+1;j<prime.size();j++)
		if (prime[j]) return j;
	return prime.size();
}
int main()
{
	FILE* f =  fopen("ciur.in","r");
	FILE* g = fopen("ciur.out","w+");		
	int n;
	fscanf(f,"%d",&n);
	vector<bool> prime(n);
	for (int i=0;i<n;i++)
		prime[i] = 1;
	for (int i=2;i<n;i=next_p(i,prime))
	{
		for (int j=2*i;j<=n;j+=i)
			prime[j]=0;
	}
	int nr =0;
	for (int i=2;i<=n;i++)
		nr+=prime[i];
	fprintf(g,"%d\n",nr);
	fclose(f);
	fclose(g);
	return 0;
}