在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 圣诞祝福语简短小学