Pagini recente » Cod sursa (job #1157082) | Cod sursa (job #827925) | Cod sursa (job #1318445) | Cod sursa (job #2255545) | Cod sursa (job #767352)
Cod sursa(job #767352)
#include <iostream>
#include <fstream>
#include <vector>
#define MAX_SIZE 1000001
using namespace std;
char is_prime[MAX_SIZE];
int vec[MAX_SIZE];
int main() {
ofstream out;
ifstream in;
long long n, count = 0;
vector<int> primes;
in.open("fractii.in");
out.open("fractii.out");
in >> n;
primes.push_back(2);
for (int i = 3; i <= n; i += 2) {
if (is_prime[i] == 0) {
primes.push_back(i);
for (int j = i + 1; j <= n; j += i)
is_prime[j] = 1;
}
}
for (int i = 0; i < primes.size(); i ++) {
int p = primes[i], val = n/p;
for (int j = 2 * p; j <= n; j += p)
vec[j] -= -- val;
}
for (int i = 2; i <= n; i ++)
count += vec[i];
count += (n - 2) * (n - 1)/2;
count *= 2;
count += 2 * n - 1;
out << count << endl;
return 0;
}