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 this by 2
   }
   return sum;
}
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