C语言:请编写函数,求正整数的真因数之和。

例如:20 的真因数有 1 2 4 5 和 10,真因数之和为
函数原型
int SumProperFactor(int x);

#include <stdio.h>
int main()
{
    int sum=0;
    int n=0; 
    int i,m=0;
    scanf("%d", &n ); //输入一个整数
    if ( n<= 0 ) //只统计正整数
        return -1;
    printf("1"); //最小的因数是1,必然存在
    sum = 1;
    for( i=2;i<n;i++ )
    {
        if ( n%i==0 ) //能整除,是因子
        {
            sum += i ; //累加
            printf("+%d", i ); //输出该因子
        }
    }
    printf("=%d\n", sum ); //输出因子和
    return 0;
}

int SumProperFactor(int x)
{
  int sum = 0;
  for (int i = 1; i < x; i++)
  {
    if (x % i == 0)
      sum + = i;
  }
return sum;
}

#include <stdio.h>
int main() {
    int SumProperFactor(int x);
    int x;
    scanf("%d", &x);
    printf("真因数之和为%d", SumProperFactor(x));
    return 0;
}
int SumProperFactor(int x){
    int sum=0;
    for(int i=1;i<x;i++){
        if(x%i==0){
            sum+=i;
        }
    }
    return sum;
}

有用请采纳


#include<stdio.h>
int SumProperFactor(int x);

int main(){
    int x, res;
    scanf("%d", &x);
    res = SumProperFactor(x);
    printf("%d\n", res);
}

int SumProperFactor(int x){
    int sum = 0;
    for(int i = 1; i <= x / 2 + 1; i++)
        if (x % i == 0)
            sum += i;
    
    return sum; 
}