题目描述
输入正整数start和end,找出从start到end这一区间段内哪一个数n的因子和最大(要求对包括1但不包括n本身的所有因子求和),并将该n及其因子和maxsum作为结果输出。例如,当start=10,end=15时,所求的n应该为12,而maxsum应该为16.
#include<iostream>
using namespace std;
int main()
{
int start, end;
cout << "start,end=?";
cin >> start >> end;
int maxsum = 0, n = 0;
for (int i = start; i <= end; i++)
{
int s = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
{
s = s + j;
}
}
if(s>maxsum)
{
maxsum = s;
n = i;
}
}
cout << "n=" << n << ",";
cout << "maxsum=" << maxsum << endl;
}