题目来源:
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1104
Description
?输入正整数n(2<=n<=1000),计算并输出n的所有正因子(包括1,不包括自身)之和。要求程序定义一个FacSum ()函数和一个main()函数,FacSum ()函数计算并返回n的所有正因子之和,其余功能在main()函数中实现。?
int FacSum(int n)?
{?
//计算n的所有正因子(包括1,不包括自身)之和sum,本函数返回sum?
}?
Input
输入正整数n(2<=n<=1000)。
Output
?输出n的所有正因子(不包括自身)之和。
Sample Input
1000
Sample Output
1340
题意描述:
输入正整数n(2<=n<=1000)
用一个自定义函数计算并返回n的正因子之和在main函数中输出
解题思路:
Facsun函数中,枚举1到n(但不等于n),能整除,则sum加上该因子
程序代码:
1 #include<stdio.h>
2 int Facsum(int n);
3 int main()
4 {
5 int n;
6 while(scanf("%d",&n) != EOF)
7 {
8 printf("%d
",Facsum(n));
9 }
10 return 0;
11 }
12 int Facsum(int n)
13 {
14 int i,sum;
15
16 if(n==1)
17 return 1;
18 else
19 for(sum=0,i=1;i<n;i++){
20 if(n % i==0)
21 sum += i;
22
23 }
24 return sum;
25 }