![:(](./images/smilies/icon_frown.gif)
![:oops:](./images/smilies/icon_redface.gif)
Code: Select all
#include<stdio.h>
#include<math.h>
void divisor(long a[],long n);
long d[100000];
int main()
{
long t,a,b,k,i,cas=0,l;
scanf("%ld",&t);
while(++cas<=t)
{
scanf("%ld %ld %ld",&a,&b,&k);
if(a==1&&b==1&&k==1)
{
printf("1 1\n");
continue;
}
l=ceil(a/(float)k);
i=0;
while(l*k<=b)
{
d[i++]=l*k;
l++;
}
divisor(d,i);
}
return 0;
}
void divisor(long a[],long n)
{
long i,j;
long long sum_n=0,sum_d=0;
for(i=0;i<n;i++)
{
for(j=2;j*j<a[i];j++)
{
if(!(a[i]%j))
{
sum_d+=j;
sum_d+=a[i]/j;
sum_n+=2;
}
}
if(j*j==a[i])
{
sum_d+=a[i]/j;
sum_n++;
}
sum_n+=2;
sum_d+=(1+a[i]);
}
printf("%lld",sum_n);
printf(" %lld\n",sum_d);
}