Problem J: 求完全数
Description
如果一个正整数x是其所有因子(不包含x本身)的和,则称x 是一个完全数。
Input
输入有多行。第一行N>0表示后面有N个测试用例。每个测试用例占一行,各行包含2个整数min和max,且max>min>0,表示要求区间[min,max]内的完全数。
Output
输出为多行,每个测试用例的输出占一行。各行的格式为:
case i:d1,d2
其中i表示测试用例编号(从1开始),d1和d2是[min,max]内的完全数,如果有多个,则两两之间用半角的逗号“,”隔开;如果没有,则输出:no complete number in this scope.
Sample Input
4
1 100
400 500
8000 9000
40 400
Sample Output
case 1:6,28
case 2:496
case 3:8128
case 4:no complete number in this scope.
HINT
Append Code
```c
#include<stdio.h>
using namespace std;
bool is_completed(int x) {
int t=x;
for(int i=1;i<x;i++) {
if(x%i==0) {
t-=i;
}
}
if(t==0)
return true;
return false;
}
int main() {
int n,min,max;
scanf("%d",&n);
while(n--) {
int count=0;
scanf("%d%d",&min,&max);
for(int i=min;i<=max;i++) {
if(is_completed(i)) {
if(count==0)
printf("%d",i);
else
printf(",%d",i);
count++;
}
}
if(count==0) {
printf("no complete number in this scope.");
}
}
return 0;
}
```