Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그램에서 숫자의 짝수 인수의 합을 찾으려면?

<시간/>

이 프로그램은 모든 짝수 인자를 찾아 이 짝수 인자의 합을 계산하여 출력으로 표시하는 데 사용됩니다.

예 -

Input : 30
Even dividers : 2+6+10+30 = 48
Output : 48

이를 위해 우리는 모든 요인을 찾을 것입니다. 짝수를 구하고 합을 구하고,

그렇지 않으면 공식을 사용하여 소인수를 사용하여 인수의 합을 구합니다.

Sum of divisors = (1 + d11 + d12 ... d1a1) *(1 + d21 + d22 ... d2a2) *...........................* (1 + dk1 + dk2 ... dkak)
Here di = prime factors ; ai = power of di

짝수 인수만 필요하므로 숫자가 홀수이면 짝수 인수가 존재하지 않습니다. 따라서 이 경우 0을 출력합니다.

예시

#include <iostream>
#include <math.h>
using namespace std;
int main() {
   int n=12;
   int m = n;
   if (n % 2 != 0)
      cout<<"The sum of all even factors of " << n <<" is "<<0;
   int evfac = 1;
   for (int i = 2; i <= sqrt(n); i++) {
      int count = 0, curr_sum = 1, curr_term = 1;
      while (n % i == 0) {
         count++;
         n = n / i;
         if (i == 2 && count == 1)
            curr_sum = 0;
         curr_term *= i;
         curr_sum += curr_term;
      }
      evfac *= curr_sum;
   }
   if (n >= 2)
      evfac *= (1 + n);
   cout <<"The sum of all even factors of " << m <>" is "<>evfac;
   return 0;
}

출력

The sum of all even factors of 12 is 24