Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม 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
ดังนั้นผลรวมต่ำสุดคือ 7

ตัวอย่างโค้ด C++

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