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

โปรแกรม C++ หาผลรวมตัวประกอบคู่ของจำนวน


ในส่วนนี้เราจะดูวิธีหาผลรวมของตัวประกอบเฉพาะคู่ของจำนวนอย่างมีประสิทธิภาพ มีจำนวน n = 480 เราต้องหาตัวประกอบทั้งหมด ตัวประกอบเฉพาะของ 480 คือ 2, 2, 2, 2, 2, 3, 5 ผลรวมของตัวประกอบคู่ทั้งหมดคือ 2+2+2+2+2 = 10 เพื่อแก้ปัญหานี้ ต้องปฏิบัติตามกฎนี้ −

  • เมื่อจำนวนหารด้วย 2 ลงตัว ให้บวกเข้าไปในผลรวม และหารจำนวนด้วย 2 ซ้ำๆ

  • ตอนนี้จำนวนต้องเป็นคี่ จึงไม่พบตัวประกอบคู่ ข้ามตัวประกอบเหล่านั้นไป

มาดูอัลกอริทึมเพื่อเข้าใจดีขึ้น

อัลกอริทึม

printPrimeFactors(n)

begin
    sum := 0
    while n is divisible by 2, do
        sum := sum + 2
        n := n / 2
    done
end

ตัวอย่าง

#include<iostream>
using namespace std;

int sumEvenFactors(int n) {
    int i, sum = 0;
    while(n % 2 == 0) {
        sum += 2;
        n = n / 2; // reduce n by dividing by 2
    }
    return sum;
}

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;
    cout << "Sum of all even prime factors: " << sumEvenFactors(n);
}

ผลลัพธ์

Enter a number: 480
Sum of all even prime factors: 10