Cod sursa(job #1179785)

Utilizator VisanCosminVisan Tudor Cosmin VisanCosmin Data 29 aprilie 2014 12:04:47
Problema Sum Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

using namespace std;

FILE*f=fopen("sum.in","r");
FILE*g=fopen("sum.out","w");
unsigned long i,phi[100000],n[10000],max,j,t;

int main()
{
    fscanf(f,"%d",&t);
    for(i=1;i<=t;i++)
        {
        fscanf(f,"%lu",&n[i]);
        if(n[i]>max) max=n[i];
        }

    for(i=1;i<=max+1;i++)
        phi[i]=i-1;
    for(i=2;i<=max;i++)
        for(j=2*i;j<=max;j+=i)
            phi[j]-=phi[i];

    for(i=1;i<=t;i++)
        if(n[i]==1) fprintf(g,"1\n");
        else fprintf(g,"%lu\n",2*n[i]*(long long)phi [n[i] ]);

    fclose(f);
    fclose(g);
    return 0;
}