Cod sursa(job #239327)

Utilizator horaxCont de teste horax Data 4 ianuarie 2009 16:32:07
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

#define dim 200001

long long t[dim];  // in t - calculez functia totient

long long T, N, K;

int main()
{
   long long i, j;
  
   freopen("sum.in","r",stdin);
   freopen("sum.out","w",stdout);
   
   // calculez functia totient pt toate numerele mai mici decat dim
   
   t[1] = 1;
   for(i=2;i<=dim;i++)
      if(!t[i])
      {
         t[i] = i-1;
         for(j=2*i;j<=dim;j+=i)
            t[j] = t[j]?(t[j]-t[j]/i):(j-j/i);
      }
   
    scanf("%Ld",&T);
    
   for ( ;T; -- T)
   {
              scanf("%Ld",&N);
              printf("%Ld\n",2*N*t[N]);
   } 
   
   return 0;
}