请编写函数,求正整数的因子之和。 例如:20 的因数有 1、2、4、5 、10和 20,因数之和为 1 + 2 + 4 + 5 + 10+20 = 42。 函数接口定义: int sum_factor (int n); 说明:当n为正整数时,返回n的所有因子之和;若n不是正整数时,返回0。
时间: 2024-02-28 12:53:37 浏览: 16
下面是一个简单的实现:
```c++
int sum_factor(int n) {
if (n <= 0) {
return 0;
}
int sum = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum;
}
```
该函数首先判断 n 是否为正整数,如果不是则返回 0。然后遍历 1 到 n 的所有数,如果该数是 n 的因子,则将其加入到 sum 中。最后返回 sum 即可。
相关问题
请编写函数,求正整数的因子之和。 例如:20 的真因数有 1、2、4、5 、10和 20,真因数之和为 1 + 2 + 4 + 5 + 10+20 = 42。
好的,我可以为您编写求正整数因子之和的函数。以下是代码实现:
```python
def sum_of_factors(n):
# 初始化因子之和为1,因为1是所有正整数的因子
sum = 1
# 遍历从2到n/2的所有正整数
for i in range(2, n//2+1):
# 如果n可以被i整除,即i是n的因子,则将i加入因子之和中
if n % i == 0:
sum += i
# 将n本身加入因子之和中
sum += n
# 返回因子之和
return sum
```
您可以调用这个函数,输入一个正整数n,来求该数的因子之和。比如:
```python
print(sum_of_factors(20)) # 输出42
```
这个函数的时间复杂度为O(n),不过由于n不会太大,因此这个函数的效率应该不会有太大问题。希望这个函数能够帮到您!
请编写函数,求正整数的因子之和。 例如:20 的因数有 1、2、4、5 、10和 20,因数之和为 1 + 2 + 4 + 5 + 10+20 = 42。 函数接口定义: int sum_factor (int n);
好的,以下是求正整数因子之和的函数实现:
```c
int sum_factor(int n) {
int sum = 0;
for(int i = 1; i <= n; i++) {
if(n % i == 0) {
sum += i;
}
}
return sum;
}
```
这个函数接受一个正整数 n 作为参数,使用循环遍历 n 的所有因子,将其加入到变量 sum 中最后返回。