在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;
}