Cod sursa(job #851622)

Utilizator danutbodbodnariuc danut danutbod Data 10 ianuarie 2013 10:18:40
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.68 kb
//var III cu formula 100p
#include<cstdio>
#define NMax 100003
using namespace std;
int i,j,n,x,e[NMax];
int main()
{
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    scanf("%d",&n);
    for(i=2;i<NMax;i++)  e[i]=i;
    for(i=2;i<NMax;i++)
        if(e[i]==i)
            for(j=i;j<=NMax;j+=i)  e[j]=e[j]/i*(i-1);
    for(i=1;i<=n;i++){
        scanf("%d",&x);
        printf("%lld\n",(long long)(e[x]<<1)*x);
    }

    return 0;
}
////var II cu formula 95p (nu se incadreaza in timp)
//#include <fstream>
//using namespace std;
//ifstream f("sum.in");
//ofstream g("sum.out");
//int e[100003],n,x,y,d,i,j,t,k;
//long long s;
//int main()
//{
//    //calcul indice Euler
//    for(i=1;i<=100000;i++) e[i]=i;
//    for(i=2;i<=100000;i++)
//        if(e[i]==i)
//            for(j=i;j<=100000;j=i+j)
//                e[j]=e[j]/i*(i-1);
//    f>>n;
//    for(i=1;i<=n;i++) {
//            f>>x;
//            g<<(long long)(e[x]<<1)*x<<'\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;
//}