求一个数的偶数因子的和的 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
广告