Find minimum sum of factors of number using C++.


Here we will see how to get a minimum sum of factors of a given number. Suppose a number is 12. We can factorize this in different ways −

  • 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)

The minimum sum is 7. We will take a number, and try to find the minimum factor sum. To get the minimum factor sum, we have to factorize the number as long as possible. In other words, we can say if we try to find the sum S by adding prime factors, then the sum will be minimized.

Example

 Live Demo

#include<iostream>
using namespace std;
int primeFactorSum(int n) {
   int s = 0;
   for (int i = 2; i * i <= n; i++) {
      while (n % i == 0) {
         s += i;
         n /= i;
      }
   }
   s += n;
   return s;
}
int main() {
   int n = 12;
   cout << "Minimum sum of factors: " << primeFactorSum(n);
}

Output

Minimum sum of factors: 7

Updated on: 30-Oct-2019

243 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements