Cod sursa(job #2613595)

Utilizator Rares31100Popa Rares Rares31100 Data 9 mai 2020 23:21:30
Problema Sum Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define K100 100000
#define LL long long

using namespace std;

ifstream in("sum.in");
ofstream out("sum.out");

int n,x,Div[K100+1];
LL suma[K100+1];

LL gauss(LL nr)
{
    return ( nr * (nr+1) ) / 2;
}

void ciur()
{
    for(int i=2;i<=K100;i++)
        if(!Div[i])
        {
            for(int j=i;j<=K100;j+=i)
            {
                Div[j]++;
                suma[j]-=gauss(2*j/i)*i;
            }
        }
        else if(Div[i]%2)
        {
            for(int j=i;j<=K100;j+=i)
                suma[j]-=gauss(2*j/i)*i;
        }
        else
        {
            for(int j=i;j<=K100;j+=i)
                suma[j]+=gauss(2*j/i)*i;
        }

    for(int i=1;i<=K100;i++)
        suma[i]+=gauss(2*i);
}

int main()
{
    ciur();

    in>>n;

    while(n--)
    {
        in>>x;
        out<<suma[x]<<'\n';
    }

    return 0;
}