题目链接:https://vjudge.net/problem/HDU-1406
注意是所有的因子之和,重复出现的因子不要累加(如果模拟了除法的话),另外给出的两个整数要比较大小(坑)。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 int f(int n) 12 { 13 int sum=0,i; 14 for(i=1;i<=n/2;i++) 15 if(n%i==0) 16 sum+=i; 17 if(sum==n) return 1; 18 else return 0; 19 } 20 21 int main() 22 { 23 int t,a,b,i,cnt; 24 scanf("%d",&t); 25 while(t--) 26 { 27 cnt=0; 28 scanf("%d %d",&a,&b); 29 if(a>b) {i=a;a=b;b=i;} 30 for(i=a;i<=b;i++) 31 if(f(i)) cnt++; 32 printf("%d ",cnt); 33 } 34 return 0; 35 }