编写 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; }
广告