在C++中怎么在一段区间内找到有最大因子和的那个数,并求出这个最大因子和(最好用for的双重循环来做)

在C++中怎么在一段区间内找到有最大因子和的那个数,并求出这个最大因子和(最好用for的双重循环来做),求大佬解答

封装一个函数,求指定整数的因子和。然后主函数循环判断区间内每个数的因子和,获得最大值以及这个数后输出

#include <stdio.h>
int fun(int n)
{
    int i,sum=0;
    for( i=1;i<n;i++ )
    {
        if ( n%i==0 ) 
            sum += i ;
    }
    return sum;
}

int main()
{
    int n,m,i,max,maxs=0,t;
    scanf("%d%d",&n,&m);
    max = n;
    for(i=n;i<=m;i++)
    {
        t = fun(i);
        if(t>maxs)
        {
            max = i;
            maxs = t;
        }
    }
    printf("%d的因子和最大,和为%d\n",max,maxs);
    return 0;
}