Cod sursa(job #936170)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 5 aprilie 2013 21:02:03
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
// x1   , x2   , ... , xa   - numerele prime cu n mai mici decat n ;
// x1+n , x2+n , ... , xa+n - numerele prime cu n mai mari decat n si mai mici decat 2*n ;
// S1 = x1 + x2 + ... + xa = phi(n) *n / 2 ;
// S2 = x1 + n + x2 + n + ... + xa + n = n * phi(n) + S1 ;
// SOL = S1 + S2 = 2 *n * phi(n) ;

#include<cstdio>
using namespace std;
int i,j,phi[100005],t,x;
int main()
{
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    for(i=2;i<=100000;i++) phi[i]=i;
    for(i=2;i<=100000;i++)
        if(phi[i]==i)
            for(j=i;j<=100000;j+=i) phi[j]=phi[j]/i*(i-1);
    scanf("%d",&t);
    for(;t;t--)
    {
        scanf("%d",&x);
        printf("%lld\n",2LL*x*phi[x]);
    }
    return 0;
}