Cod sursa(job #2917954)

Utilizator TheNamelessOneCiociia Marius Andrei TheNamelessOne Data 8 august 2022 20:12:48
Problema Sum Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
//Problema urata ce se rezolva cu Indicatorul lui Euler
//https://www.pbinfo.ro/articole/18882/indicatorul-lui-euler
#include <fstream>
#define N 100001

using namespace std;

ifstream cin ("sum.in");
ofstream cout ("sum.out");

int n,x,phi[100001];

void Indicatorul_lui_Euler ()
{
    for (int i=1; i<N; ++i) phi[i]=i;
    for (int i=2; i<N; ++i)
        if (phi[i]==i)
            for (int j=i; j<N; j+=i)
                phi[j]=(phi[j]/i)*(i-1);
}

int main()
{
    Indicatorul_lui_Euler();
    cin>>n;
    for (int i=1; i<=n; ++i)
    {
        cin>>x;
        cout<<(long long)(phi[x]*2*x)<<"\n";
    }
    return 0;
}