用 C++实现计算正整数所有因数之和(不包括自身,如果此数是质数,因数之和为 1)的代码:
时间: 2024-10-13 18:19:13 浏览: 34
在C++中,你可以使用循环结构和条件判断来计算一个正整数的所有因数之和。以下是一个简单的示例,用于实现这个功能:
```cpp
#include <iostream>
bool isPrime(int n) {
if (n <= 1)
return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0)
return false;
}
return true;
}
int sumOfFactors(int num) {
int sum = 1; // 自己总是因数之一
for (int i = 2; i <= num / 2; i++) { // 避免检查num本身作为因子
if (num % i == 0) {
sum += i;
if (!isPrime(i)) { // 如果i不是质数,还需要加上它的逆元
sum += num / i;
}
}
}
return sum;
}
int main() {
int number;
std::cout << "请输入一个正整数:";
std::cin >> number;
if (isPrime(number))
std::cout << "该数是质数,因数之和为 1.\n";
else
std::cout << "该数的因数之和为: " << sumOfFactors(number) << ".\n";
return 0;
}
```
在这个程序中,`isPrime`函数用于检查输入的数字是否是质数,而`sumOfFactors`函数则负责计算并返回除了自身以外的其他因数之和。
阅读全文