在C ++中,LCM为N时,不同数字的最大和
在这个问题中,给我们一个数字N。我们的任务是创建一个程序,以查找C++中LCM为N的最大不同数字之和。
问题描述
在这里,我们需要找到以N为最低公倍数(LCM)的最大数字的总和。
让我们举个例子来了解这个问题,
输入值
N = 10
输出结果
18
说明
Maximum sum with LCM 10 is 1 + 2 + 5 + 10 = 18
解决方法
解决此问题的简单方法是使用以下想法:如果我们希望将N作为LCM,则需要采用N的所有除数。并将它们相加以获得maxSum。
为此,我们将找到N的所有因子。然后将它们加起来,将得到最大值,因为我们考虑了所有可能导致LCM的数字为N。
示例
该程序说明了我们解决方案的工作原理,
#include <iostream>
using namespace std;
int calcFactorSum(int N){
int maxSum = 0;
for (int i = 1; i*i <= N; i++){
if (N % i == 0) {
if (i == (N/i))
maxSum = maxSum + i;
else
maxSum = maxSum + i + (N/i);
}
}
return maxSum;
}
int main(){
int N = 42;
cout<<"The sum of distinct numbers with LCM as "<<N<<" is "<<calcFactorSum(N);
return 0;
}输出结果
The sum of distinct numbers with LCM as 42 is 96
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短