Pagini recente » Cod sursa (job #647670) | Cod sursa (job #3122889) | Cod sursa (job #1449924) | Cod sursa (job #1071298) | Cod sursa (job #2613595)
#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;
}