使用C ++查找最小数量因子。

在这里,我们将看到如何获得给定数量的因子的最小和。假设数字是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)

最小和为7。我们将取一个数字,然后尝试找到最小因数和。为了获得最小因子之和,我们必须将因子尽可能长地分解。换句话说,我们可以说,如果我们尝试通过添加素数来找到总和S,那么总和将被最小化。

示例

#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);

}

输出结果

Minimum sum of factors: 7

以上是 使用C ++查找最小数量因子。 的全部内容, 来源链接: utcz.com/z/345365.html

回到顶部