问题
问答题
请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)之和(规定n的值不大于1000)。例如:输入n的值为856,则输出为sum=763。注意:部分源程序已存在文件test33_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数count的花括号中填写若干语句。文件test33_2.cpp清单如下: #include<stdio. h> #include<iostream. h> int fun(int n) { } void main ( ) { int n, sum; cout<<"Input n:"<<end1; cin>>n; sum=fun (n); cout<<" sum= \n"<<sum<<end1; }
答案
参考答案:
解析:int fun(int n) {int s=0,i; for(i=2;i<=n-1;i++) if (n%i==0) s+=i; return s; } 本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子累加到s中去。此种题型为典型考题。