โจทย์
เหมือนโจทย์ก่อนหน้า: กำหนด N หาผลรวมสูงสุดของจำนวนที่ต่างกันซึ่ง LCM เท่ากับ N
ตัวอย่าง: N = 12 → ตัวหาร: 1, 2, 3, 4, 6, 12 → Sum = 28
วิธีการแก้ปัญหา
หาตัวหารทั้งหมดของ N แล้วบวกกัน (เหมือนโจทย์ก่อนหน้า)
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
int calcMaxSumForLCM(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 = 17;
cout << "The sum of distinct numbers such that LCM if these numbers is " << N << " is " << calcMaxSumForLCM(N);
return 0;
}
ผลลัพธ์
The sum of distinct numbers such that LCM if these numbers is 17 is 18