2 2 5 5 7
0 1
贡献了很多次wa 居然是因为 num1 和num2的大小不一定
坑爹了啊
#include<stdio.h> int a[10000+10]; void get() { int i,j,sum; a[1]=0; for(i=2;i<10000;i++) { sum=0; for(j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) {a[i]=a[i-1]+1;} else a[i]=a[i-1]; } } int main() { int n,cas,m,temp; get(); scanf("%d",&cas); while(cas--) { scanf("%d %d",&n,&m); if(m<n) {temp=n;n=m;m=temp;} //if((n==6&&m==6)||(n==28&&m==28)||(n==496&&m==496)||(n==8128&&m==8128)) {printf("1\n");continue;} printf("%d\n",a[m]-a[n-1]); } return 0; }