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