숫자의 인수의 최소 합을 찾는 프로그램입니다. 이 문제를 해결하기 위한 논리는 모든 요소 집합을 찾아 추가하는 것입니다. 모든 요소 집합에 대해 동일한 작업을 수행한 다음 모든 요소를 비교합니다. 그런 다음 이 합계의 최소값을 모두 찾으십시오.
Input: n=12 Output: 7
설명
먼저 숫자 n의 인수를 찾은 다음 합하고 합을 최소화합니다. 다음은 12와 인수의 합을 다양한 방식으로 인수분해하는 다양한 방법입니다.
12 = 12 * 1 = 12 + 1 = 13 12 = 2 * 6 = 2 + 6 = 8 12 = 3 * 4 = 3 + 4 = 7 12 = 2 * 2 * 3 = 2 + 2 + 3 = 7 Therefore minimum sum is 7
예시
#include<iostream>
using namespace std;
int main() {
int n = 12;
int sum = 0;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
sum += i;
n /= i;
}
}
sum += n;
cout << sum;
return 0;
}