Pagini recente » Cod sursa (job #1904431) | Cod sursa (job #2129345) | Cod sursa (job #3217763) | Cod sursa (job #1953781) | Cod sursa (job #1171096)
#include <stdio.h>
using namespace std;
FILE*f=fopen("sum.in","r");
FILE*g=fopen("sum.out","w");
bool v[10000];
unsigned long div[20],d,k,xCop,i,n,x,sum[20],S;
void Solve()
{
d=3;
k=0;
xCop=x;
while(xCop>1)
{
if(xCop%2==0)
{
k=1;
div[0]=2;
xCop/=2;
}
else {
if(xCop%d==0)
{
if(d!=div[k-1]) div[k++]=d;
xCop/=d;
}
else d+=2;
}
}
// for(i=0;i<k;i++) printf("%d ",div[i]);
int stop=1;
while(stop)
{
stop=0;
for(i=0;i<k;i++)
if(sum[i]<=2*x)
{
stop=1;
v[sum[i]]=1;
sum[i]+=div[i];
}
}
for(i=1;i<=2*x;i++)
if(v[i]==1) S+=i;
S=x*(2*x+1)-S;
fprintf(g,"%lu\n",S);
}
int main()
{
fscanf(f,"%lu",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%lu",&x);
Solve();
}
fclose(f);
fclose(g);
return 0;
}