题目地址:点击打开链接
思路:提前预处理一下就行
AC代码:
#include<stdio.h>
#include<string.h>
int x[10000];
int main()
{
memset(x,0,sizeof(x));
int i,j,a,b,sum = 1,t,temp;
for(i=2; i<10000; i++)
{
sum = 1;
for(j=2; j<=i/2; j++)
{
if(i % j == 0)
{
sum += j;
}
}
if(i == sum)
x[i] = 1;
}
scanf("%d",&t);
while(t--)
{
sum = 0;
scanf("%d%d",&a,&b);
if(a > b)
{
temp = a;
a = b;
b = temp;
}
for(i=a; i<=b; i++)
{
sum += x[i];
}
printf("%d\n",sum);
}
return 0;
}