숫자의 인수의 최소 합을 찾는 프로그램입니다. 이 문제를 해결하기 위한 논리는 모든 요소 집합을 찾아 추가하는 것입니다. 모든 요소 집합에 대해 동일한 작업을 수행한 다음 모든 요소를 비교합니다. 그런 다음 이 합계의 최소값을 모두 찾으십시오.
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; }