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