在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 闺蜜好运祝福语简短