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

以上是 C ++程序找到一个数的偶数因子之和? 的全部内容, 来源链接: utcz.com/z/357722.html

回到顶部