Cod sursa(job #2225514)

Utilizator AraldaAralda Pacurar Aralda Data 27 iulie 2018 14:00:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

char sir[2000001];

int main() {

	FILE* ip;
	FILE* op;

	ip = fopen("ciur.in", "r");
	if (ip == NULL) {

		perror("Cannot open input file");
		return 1;
	}

	op = fopen("ciur.out", "w");
	if (op == NULL) {

		perror("Cannot open output file");
		return 1;
	}

	int n;
	fscanf(ip, "%d", &n);
	
	for (int i = 2; i <= n; i++) {

		if (sir[i] != 1) {

			for (int j = i * 2; j <= n; j += i) {

				sir[j] = 1;
			}
		}
	}

	int primes = 0;

	for (int i = 2; i <= n; i++) {

		if (sir[i] != 1) {

			primes++;
		}
	}

	fprintf(op, "%d", primes);

	fclose(ip);
	fclose(op);

	return 0;
}