Pagini recente » Cod sursa (job #1385876) | Cod sursa (job #592608) | Borderou de evaluare (job #1036197) | Cod sursa (job #2586687) | Cod sursa (job #797808)
Cod sursa(job #797808)
#include <iostream>
#include <fstream>
std::ifstream input("ciur.in");
std::ofstream output("ciur.out");
#define SIZE 2000000
#define MARKED 42
char base[SIZE];
int main() {
int n;
input >> n;
base[0] = MARKED;
base[1] = MARKED;
for (int i = 0; i < n; i++) {
if (base[i] == MARKED)
continue;
long current = i;
long current_position = current * current;
if (current_position > n)
break;
while (current_position < n) {
base[current_position] = MARKED;
current_position += current;
}
}
long count = 0;
for (int i = 0; i < n; i++) {
if (base[i] != MARKED)
count++;
}
output << count;
}