Cho số N, tìm tổng lớn nhất các số khác nhau sao cho LCM của chúng là N. (Bài toán trùng lặp với bài 1003079588, cùng một giải pháp: tổng tất cả ước số của N).
Ví dụ: N=12 → ước: 1,2,3,4,6,12 → tổng = 28.
Ví dụ (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+=i;
else 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;
}
Đầu ra
The sum of distinct numbers such that LCM if these numbers is 17 is 18