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

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

ในส่วนนี้ เราจะดูวิธีที่เราสามารถหาผลรวมของตัวประกอบเฉพาะคู่ (Even Prime Factors) ของจำนวนได้อย่างมีประสิทธิภาพ มีจำนวนเช่น 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 หาร 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; // ลด n โดยการหารด้วย 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