习题6-3 使用函数输出指定范围内的完数
只有最大范围不通过,后来查阅发现,1不是完数(某自然数除它本身以外的所有因子之和等于该数,则该数被称为完数),如果在factorsum函数中,不把1排除,那么会影响程序通过
int factorsum( int number ){
int i,sum=1;//这么写会判断1为完数,导致测试不通过
for(i=2;i<number;i++){
if(number%i==0)
sum+=i;
}
return sum;
}
int factorsum( int number ){
int i,sum=1;
if(number==1)//改后 把1单独拿出来
sum=0;
for(i=2;i<number;i++){
if(number%i==0)
sum+=i;
}
return sum;
}