题目描述:输入正整数n(2<=n<=1000),计算并输出n的所有正因子(包括1,不包括自身)之和。要求程序定义一个FacSum ()函数和一个main()函数,FacSum ()函数计算并返回n的所有正因子之和,其余功能在main()函数中实现。
int FacSum(int n)
{
//计算n的所有正因子(包括1,不包括自身)之和sum,本函数返回sum
}
输入:输入正整数n(2<=n<=1000)。
输出:输出n的所有正因子(不包括自身)之和。
样例输入
1000
样例输出
1340
代码:
#include <stdio.h>
int FacSum(int n){
int i,sum=1;
for(i=2;i<n;i++){//这里区别于素数判别,求所有的因子,不仅仅是一次整除就可以,又不包括自身所以要一直循环到n-1;
if(n%i==0) sum+=i;
}
return sum;
}
int main(){
int n;
scanf("%d",&n);
printf("%d",FacSum(n));
}
运行结果:
笔者水平有限,不到之处,还望诸位批评指正。