Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tìm tổng các thừa số nhỏ nhất của một số?

Chương trình tìm tổng các thừa số nhỏ nhất của một số. Logic để giải quyết vấn đề này là tìm tất cả các tập hợp các yếu tố và thêm chúng vào. Đối với mọi tập hợp các yếu tố, chúng tôi sẽ làm tương tự và sau đó so sánh tất cả chúng. Sau đó, tìm tất cả các khoản tiền tối thiểu trong số này.

Input: n=12
Output: 7

Giải thích

Đầu tiên tìm các thừa số của số n sau đó tính tổng chúng và cố gắng thu nhỏ tổng. Sau đây là các cách khác nhau để tính thừa số 12 và tổng các thừa số theo những cách khác nhau.

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

Ví dụ

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