Pagini recente » Cod sursa (job #745222) | Cod sursa (job #886239) | Cod sursa (job #855283) | Cod sursa (job #1165590) | Cod sursa (job #2158515)
#include <iostream>
#include <fstream>
#include <cmath>
#define ll long long
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
ll y,nrd,z,d,r,x,rz,a,pt,nrp,s,r1,r2,k[10],f[10],dv[80],i,j,n;
bool ciur[330];
void sub(ll nv,ll p)
{
if(nv==z+1)
{
rz+=p*((i*2/p)*(i*2/p+1)/2)*s;
return;
}
for(ll i=k[nv-1]+1;i<=nrp;i++)
{
k[nv]=i;
sub(nv+1,p*f[i]);
}
}
int main () {
for(i=2;i<=320;i++)
if(ciur[i]==0)
{
nrd++; dv[nrd]=i;
for(j=i*i;j<=320;j+=i) ciur[j]=1;
}
fin>>a;
while(a)
{
a--;
fin>>i;
n=i; d=1;
pt=0; nrp=0;
while(n!=1&&d<=nrd)
{
pt=0;
while(n%dv[d]==0)
{ n/=dv[d]; pt++; }
if(pt!=0)
{ nrp++; f[nrp]=dv[d]; }
d++;
}
if(n>1)
{ nrp++; f[nrp]=n; }
rz=0; s=1;
for(z=1;z<=nrp;z++)
{
sub(1,1);
s*=-1;
}
z=i;
rz=(2*z*(2*z+1)/2)-rz;
fout<<rz<<"\n";
}
}