问答题 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。使sum(int n)能计算所有n的因子之和(不包括1和自身)。
注意:不能修改程序的其他部分,只能补充sum函数。
试题程序:
#include<iostream.h>
int sum(int n)


void main()

cout<<sum(10)<<end1;
cout<<sum(200)<<end1;
cout<<sum(400)<<end1;
return;


【正确答案】int all=0;
for(int i=2;i<n;i++)
{
if(n%i==0)
{
all+=i;
}
}
return all;
【答案解析】[解析] 为了实现计算所有n的因子之和且不包含1和自身,在函数中定义一个变量all来保存求和结果,并为最终结果在函数结束时返回。在循环中逐个寻找n的因子,为了在计算中排除掉1和n本身,因此循环变量i的变化范围为2~n-1。如果n%i==0,说明i是n的因子,因此将i加到all上。