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

C ++ Chương trình tìm tổng các thừa số chẵn của một số?

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 lấy 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 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ờ con 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 để có ý tưởng tốt 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