編寫 C 程式以找出數字的最小因子和?


該程式用於找出數字的最小因子和。解決此問題的邏輯是,找出所有的因子集合並相加。對於每一個因子集合,我們執行同樣的做法,然後對所有集合求和進行比較。然後找出所有這些和的最小值。

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;
}

更新於:20-Aug-2019

327 次瀏覽

開啟你的職業生涯

完成課程以獲取認證

開始
廣告
© . All rights reserved.