int isPerfectNumber(int num) {
int sum = 0;
int i;
for ( i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
int main() {
int isPerfectNumber(int num);
int m, n;
int i;
int cnt=0;
int c=2;
scanf("%d,%d", &m, &n);
if(m>9999||n>9999){
printf("error");
}else if(m<=0 ||n<=0){
printf("error");
}else{
if (m > n) {
int temp = m;
m = n;
n = temp;
}
for ( i = m; i <= n; i++) {
if (isPerfectNumber(i)) {
cnt++;
if(cnt==c){
printf(",");
c++;
}
printf("%d", i);
}
}
}
这段代码没什么难的,关键在于“,”,题目要求输出如果是在1-2000内的完美数,则格式为6,28,496 这个逗号输出的思想很好。就是要跟着前面的,不要去考虑后面