Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm tổng các thừa số chẵn của một số bằng C ++.

Trong phần này, chúng ta sẽ xem cách chúng ta có thể lấy tổng của tất cả các thừa số nguyên tố chẵn của một số một cách hiệu quả. Có một số nói n =480, chúng ta phải nhận tất cả các thừa số của điều này. Các thừa số nguyên tố của 480 là 2, 2, 2, 2, 2, 3, 5. Tổng của tất cả các thừa số chẵn là 2 + 2 + 2 + 2 + 2 =10. Để giải bài toán này, chúng ta phải tuân theo quy tắc này -

  • Khi một số chia hết cho 2, hãy cộng chúng thành tổng và chia số đó cho 2 nhiều lần.
  • Bây giờ số phải là số lẻ. Vì vậy, chúng tôi sẽ không tìm thấy bất kỳ yếu tố nào là đồng đều. Sau đó, chỉ cần bỏ qua những yếu tố đó.

Hãy để chúng tôi xem thuật toán để hiểu rõ hơn.

Thuật toán

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

Ví dụ

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

Đầu ra

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