Cod sursa(job #1463981)

Utilizator EpictetStamatin Cristian Epictet Data 21 iulie 2015 22:59:17
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

ifstream fin ("sum.in");
ofstream fout ("sum.out");

int N, Fi[100010];
long long X;

void Euler_Prin_Ciur() /// Fi(n) reprezintă numărul de numere mai mici sau egale cu n și prime cu acesta;
{
    for (int i = 1; i <= 100000; i++) Fi[i] = i - 1;
    for (int i = 2; i <= 100000; i++)
    {
        for (int j = i + i; j <= 100000; j += i)
        {
            Fi[j] -= Fi[i];
        }
    }
}

int main()
{
    Euler_Prin_Ciur();
    fin >> N;
    while (N--)
    {
        fin >> X;
        fout << X * 2 * Fi[X] << '\n';
    }
    fin.close();
    fout.close();
    return 0;
}