Cod sursa(job #846102)

Utilizator danutbodbodnariuc danut danutbod Data 1 ianuarie 2013 15:16:38
Problema Sum Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
//var II cu formula b
#include <fstream>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
long long e[100003],n,x,y,d,i,j,t,s,k;
int main()
{
    k=100000;  //calcul indice Euler
    for(i=1;i<=k;i++) e[i]=i;
    for(i=2;i<k;i++)
        if(e[i]==i)
            for(j=i;j<=k;j=i+j)
                e[j]=e[j]/i*(i-1);
    f>>n;
    for(i=1;i<=n;i++) {
            f>>x;
            s=e[x]*2*x;
            g<<s<<'\n';
    }
    g.close();
    return 0;
}


//var I 55p (nu se incadreaza in timp)
//se descompune x in factori si se elimina
//din vector toti multipli factorilor
//#include <fstream>
//using namespace std;
//ifstream f("sum.in");
//ofstream g("sum.out");
//int e[200003],n,x,y,d,i,j,t;
//long long s;
//int main()
//{
//    f>>n;
//    for(t=1;t<=n;t++){
//    f>>x;y=2*x;
//    for(i=1;i<=y;i++)e[i]=0;
//    d=2;
//    while(x!=1){
//       if(x%d==0){
//          for(i=d;i<=y;i=i+d)e[i]=1;
//          while(x%d==0)x=x/d;
//       }
//       d++;
//    }
//    for(s=0,i=1;i<=y;i++)
//       if(e[i]==0)s+=i;
//    g<<s<<'\n';
//    }
//    g.close();
//    return 0;
//}