Pagini recente » Cod sursa (job #20848) | Cod sursa (job #2291218) | Cod sursa (job #1302958) | Cod sursa (job #1610671) | Cod sursa (job #2306721)
#include <bits/stdc++.h>
using namespace std;
int fact[15];
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
int k,n,i;
scanf("%d",&k);
for(i=1;i<=k;i++)
{
scanf("%d",&n);
int d=2,e=0;
long long sum=0;
int cn=n,c1=0;
while(d*d<=n)
{
e=0;
while(n%d==0)
{
n/=d;
e++;
}
if(e)fact[++c1]=d;
d++;
}
if(n>1)
fact[++c1]=n;
n=cn;
int cnt=0,tot=1<<c1,j;
for(j=1;j<tot;j++)
{
int cnt1=0,prod=1,s;
for(s=0;s<c1;s++)
if(j&(1<<s))
{
cnt1++;
prod*=fact[s+1];
}
if(cnt1&1)
cnt+=n/prod,sum+=1LL*prod*(n/prod)*(n/prod+1)/2;
else
cnt-=n/prod,sum-=1LL*prod*(n/prod)*(n/prod+1)/2;
}
sum=1LL*n*(n+1)/2-sum;
cnt=n-cnt;
sum*=2;
sum+=1LL*n*cnt;
printf("%lld\n",sum);
}
return 0;
}