Cod sursa(job #1324547)

Utilizator dragos_vecerdeaVecerdea Dragos dragos_vecerdea Data 22 ianuarie 2015 15:34:49
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

using namespace std;
FILE *fin ,*fout;
char v[100001];
long long sum[100001] ,sus[100001] ,jos[100001];
int main()
{
    long long n ,i ,j ,z ,x;
    fin = fopen("sum.in" ,"r");
    fout = fopen("sum.out" ,"w");
    fscanf(fin ,"%lld" ,&n);
    for(i=1;i<=100000;i++)
    {
        sum[i]=i;
        sus[i]=1;
        jos[i]=1;
    }
    sum[1]=1;
    for(i=2;i<=100000;i++)
    {
        if(v[i]==0)
        {
            sus[i]*=(i-1);
            jos[i]*=i;
            for(j=2*i;j<=100000;j+=i)
            {
                v[j]=1;
                sus[j]*=(i-1);
                jos[j]*=i;
            }
        }
    }
    for(i=1;i<=100000;i++)
    {
        sum[i]=(sum[i]*sus[i])/jos[i];
    }
    for(z=1;z<=n;z++)
    {
        fscanf(fin ,"%lld" ,&x);
        fprintf(fout ,"%lld\n" ,sum[x]*2*x);
    }
    return 0;
}