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ố trong Chương trình C ++?

Chương trình này được sử dụng để tìm tất cả các thừa số chẵn và tính toán tổng của các thừa số chẵn này và hiển thị nó dưới dạng đầu ra.

Ví dụ -

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

Đối với điều này, chúng tôi sẽ tìm thấy tất cả các yếu tố. Tìm chẵn của chúng và tìm tổng,

Ngoài ra, chúng tôi sẽ sử dụng công thức để tìm tổng các thừa số bằng cách sử dụng các thừa số nguyên tố,

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

Chúng ta chỉ cần thừa số chẵn như vậy, nếu số lẻ thì không tồn tại thừa số chẵn. Vì vậy, chúng tôi sẽ xuất ra 0 trong trường hợp đó.

Ví dụ

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

Đầu ra

The sum of all even factors of 12 is 24