使用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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP