Cod sursa(job #1435463)

Utilizator agamanAlexandru Gaman agaman Data 13 mai 2015 12:46:24
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <math.h>

#define INPUT_FILE "ciur.in"
#define OUTPUT_FILE "ciur.out"

#define MAX_SIZE 2000000

std::fstream in(INPUT_FILE, std::fstream::in);
std::fstream out(OUTPUT_FILE, std::fstream::out);

using namespace std;

int main(int argc, char const *argv[])
{
	register int i, j;
	int n;
	int numberOf = 0;
	bool marked[MAX_SIZE];
	in >> n;

	for (i = 1; i <= n; i++) {
		marked[i] = false;
	}

	for (i = 2; i <= trunc(sqrt(n)); i++) {
		if (!marked[i]) {
			for (j = i*i; j <= n; j += i) {
//				cout << "Marking " << j << " as true...\n";
				marked[j] = true;
			}
		}
	}
	for (i = 2; i <= n; i++) {
		if (marked[i] == false) {
			numberOf++;
		}
	}
//	cout << "For supplied value " << n << " the answer is " << numberOf << "\n";
	out << numberOf;

	out.close();
	in.close();
	return 0;
}