Cod sursa(job #1875687)

Utilizator mircearoataMircea Roata Palade mircearoata Data 11 februarie 2017 14:11:05
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,maxx;
long long euler[100001];
int v[100001];

int main()
{
    in>>n;
    for(int i = 1; i<=n; i++)
    {
        in>>v[i];
        maxx=max(maxx,v[i]);
    }
    for(int i = 1;i<=maxx;i++)
        euler[i]=i;
    for(int i = 2; i<=maxx; i++)
    {
        if(euler[i]==i)
        {
            for(int j = 1; j<=maxx/i; j++)
            {
                euler[i*j]/=i;
                euler[i*j]*=(i-1);
            }
        }
    }
    for(int i = 1; i<=n; i++)
    {
        out<<v[i]*2*euler[v[i]]<<'\n';
    }
    return 0;
}