在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 妈妈生日祝福语简短励志