Pagini recente » Cod sursa (job #2032615) | Cod sursa (job #339191) | Cod sursa (job #2434473) | Cod sursa (job #2608070) | Cod sursa (job #2947086)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <deque>
#include <queue>
#include <stack>
using namespace std;
typedef long long ll;
//computes the chiur of Eratosthenes for finding the prime numbers
vector<bool> computePrimes(const int& n) {
vector<bool> isPrime(n + 1, 1);
isPrime[0] = isPrime[1] = 0;
for (int i = 2; i * i <= n; ++i) {
if (isPrime[i]) {
int multiple = 2 * i;
while (multiple <= n) {
isPrime[multiple] = 0;
multiple += i;
}
}
}
return isPrime;
}
void Solve() {
int n, ans = 0;
scanf_s("%d", &n);
auto isPrime = computePrimes(n);
for (int i = 2; i <= n; ++i) {
ans += isPrime[i];
}
printf("%d\n", ans);
}
int main() {
ios_base::sync_with_stdio(false);
FILE* stream;
freopen_s(&stream, "ciur.in", "r", stdin);
freopen_s(&stream, "ciur.out", "w", stdout);
Solve();
return 0;
}