Cod sursa(job #2155665)

Utilizator ovidius11Stiriu Ovidius ovidius11 Data 7 martie 2018 23:33:37
Problema Sum Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<cstdio>
long long f[10];
int main(){
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
long long n,x,i,d,e,u,nr=1,cnt=0,rasp=0,sum,cx,j;
scanf("%lld",&n);
for(i=1;i<=n;i++){
scanf("%lld",&x);
cx=x;
u=0;
d=2;
while(d*d<=x && x>1){
e=0;
while(x%d==0){
e++;
x=x/d;}
if (e)
f[++u]=d;
d++;}
if (x>1)
f[++u]=x;
rasp=0;
for(j=1;j<(1<<u);j++){
nr=1;
cnt=0;
for(e=1;e<=u;e++)
if (j&(1<<(e-1)))
nr=nr*f[e],cnt++;
sum=(2*cx/nr)*(2*cx/nr+1)/2*nr;
if (cnt%2==1)
rasp=rasp+sum;
else
rasp=rasp-sum;}
printf("%lld\n",2*cx*(2*cx+1)/2-rasp);}
return 0;}