问题:
代码:
#include<iostream>
using namespace std;
int main()
{
//start为区间起始值,end为区间终止值,max_factor_sum为最大因子和,temp为因子数最大的数字
int start,end,max_factor_sum=0,temp=0;
cin>>start>>end;
//当起始值仍小与终止值时
while(start<=end)
{
//factor_sum为数字的因子和(包括1,但不包括数字本身)
int factor_sum=1;
int i=2;
//求当前数字的因子和
for(;i<=start/2;i++)
{
if(start%i==0)
{
factor_sum+=i;
}
}
//比较当前的因子和和最大因子和
if(factor_sum>max_factor_sum)
{
max_factor_sum=factor_sum;
temp=start;
}
start++;
}
cout<<"数字"<<temp<<"的因子和最大为"<<max_factor_sum<<endl;
return 0;
}
运行结果: