Pagini recente » Cod sursa (job #2419381) | Cod sursa (job #255009) | Cod sursa (job #2697117) | Cod sursa (job #2838936) | Cod sursa (job #2781557)
#include <iostream>
#include <fstream>
using namespace std;
const int MAX = 100000;
int phi[MAX];
int main()
{
long long n, x, i, j;
/// alcatuim indicatorul lui euler
for(i = 1; i <= MAX; i++)
{
phi[i] = i;
}
for(i = 2; i <= MAX; i++)
{
if(phi[i] == i)
{
for(j = i; j <= MAX; j+= i)
{
phi[j] = phi[j] / i * (i - 1);
}
}
}
ifstream fin;
fin.open("sum.in");
ofstream fout;
fout.open("sum.out");
fin >> n;
for(i = 0; i < n; i++)
{
fin >> x;
/// formula dedusa din demonstratie matematica:
fout << 2 * phi[x] * x << endl;
}
fin.close();
fout.close();
return 0;
}