实验6-8 使用函数输出指定范围内的完数
开始factorsum函数,没判断1不是完数,只能拿17分。加上判断1后才能拿20分。
int factorsum( int number ){
//1不是完数
if(number == 1){
return 0;
}
int sum=1;
for(int i=2;i<=number/2;i++){
if(number % i == 0){
sum+=i;
}
}
return sum;
}
void PrintPN( int m, int n ){
int flag=0;//判断有没有完数
for(int i=m;i<=n;i++){
if(i == factorsum(i)){
flag=1;
printf("%d = 1",i);
for(int j=2;j<i;j++){
if(i % j == 0){
printf(" + %d",j);
}
}
printf("\n");
}
}
if(!flag){
printf("No perfect number");
}
}