Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

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

Tìm tổng nhỏ nhất của các ước số khi phân tích số n thành tích các ước.

Ví dụ n=12: 12=12*1 (tổng 13), 2*6 (8), 3*4 (7), 2*2*3 (7) -> min = 7.

Giải pháp

Phân tích thừa số nguyên tố, tổng các thừa số nguyên tố là tối thiểu.

Chương trình C++ ví dụ

#include <iostream>
using namespace std;

int main() {
    int n = 12, sum = 0;
    for (int i=2; i*i<=n; i++)
        while (n%i==0) { sum+=i; n/=i; }
    sum += n;
    cout << sum;
    return 0;
}

Kết quả

7