Cod sursa(job #561579)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 20 martie 2011 20:18:22
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
using namespace std;

#define MAX 100005
long long sum;
long n,x,j,i;
long long v[MAX];
char u[MAX];
void ciur()
{
    for (i=1;i<=MAX;i++)
      v[i]=i-1;
    for (i=2;i<=MAX;i++)
     if (u[i]==0)
     {
      if (i*i<=MAX)           
      for (j=i*i;j<=MAX;j+=i)
      {
          u[j]=1;
          v[j]-=v[i]; 
      }     
      else break;
     } 
}        
int main()
{
    ciur();
	freopen ("sum.in", "r", stdin); freopen ("sum.out", "w", stdout);
    scanf ("%d", &n);
    for (i=1;i<=n;i++)
    {
        scanf ("%d", &x);
        sum=v[x]*x*2;
        printf ("%lld\n", sum);
    }     
    return 0;
}