Cod sursa(job #1668525)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 29 martie 2016 20:48:56
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>

#include <cstdio>

using namespace std;

int x,i,sum,n,j,s,t,a,b,r,f[100001];

FILE  *fin = fopen ("sum.in", "r");

FILE  *fout = fopen ("sum.out", "w");

//ifstream fin ("sum.in");

//ofstream fout ("sum.out");

int main (){

    //fin>>n;
    fscanf (fin, "%d", &n);
    /*for (t=1;t<=n;t++){
        fin>>x;
        sum = 0;
        for (i=1;i<=2*x;i++){
            a = i;
            b = x;
            while (b!=0){
                r = a%b;
                a = b;
                b = r;
            }
            if (a == 1)
                sum+=i;
        }
        fout<<sum<<"\n";
    }
*/


    // indicatorul lui euler;

    for (i=1;i<=100000;i++)
        f[i] = i;

    for (i=2;i<=100000;i++)
        if (f[i] == i)
            for (j=i;j<=100000;j+=i)
                f[j] = f[j]/i*(i-1);

    for (t=1;t<=n;t++){
        //fin>>x;
        fscanf (fin, "%d", &x);
        /*for (i=1;i<=2*x;i++)
            f[i] = i;
        for (i=2;i<=2*x;i++)
            if (f[i] == i)
                for (j=i;j<=2*x;j+=i)
                    f[j] = f[j]/i*(i-1);
        s = 0;
        //for (i=1;i<=2*x;i++)
          //  fout<<f[i]<<" ";
        fout<<2*f[x]*1LL*x;
        fout<<"\n";
        */
        fprintf (fout, "%d\n",f[x]*2*x*1LL);
        //fout<<f[x]*2*x*1LL;
        //fout<<"\n";
    }



    return 0;
}