Pagini recente » Cod sursa (job #2316581) | Cod sursa (job #1890198) | Cod sursa (job #241040) | Cod sursa (job #2480569) | Cod sursa (job #2496233)
// CTI
#include <bits/stdc++.h>
using namespace std;
ifstream in("sum.in");
ofstream out("sum.out");
int main()
{
//ios::sync_with_stdio(false);
//cin.tie(0);
int M = 100000;
vector<int> v(M+1);
for (int i = 1; i <= M; ++i) {
v[i] = i - 1;
}
for (int i = 1; i <= M; ++i) {
for (int j = 2*i; j <= M; j += i) {
v[j] = v[j] - v[i];
}
}
int n; in >> n;
for (int i=0; i<n; ++i) {
int x; in >> x;
// v[x] - numere prime mai mici decat x
// 2 - de doua ori mai multe pentru x[2*x]
// 2 * x - daca cate 2 de la inceput si de la sfarsit
// din lista sortata a numerelor mai mici x si prime
// cu x
long long answer = v[x] * 2 * x;
out << answer << '\n';
}
return 0;
}