所属年份:2011.3
请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。
例如,若主函数从键盘给n输入的值为856,则输出为sum=763。
#include <stdio.h> int fun(int n) { } int main() { int n,sum; FILE *out; printf("Input n:"); scanf("%d", &n); sum=fun(n); printf("sum=%d\n", sum); /******************************/ out=fopen("out.dat","w"); fprintf(out,"%d\n",fun(123)); fprintf(out,"%d\n",fun(456)); fprintf(out,"%d\n",fun(789)); fprintf(out,"%d\n",fun(147)); fprintf(out,"%d",fun(258)); fclose(out); /******************************/ return 0; }
【考点分析】
本题考查:变量数据类型及初始化,循环判断语句,函数返回值。
【解题思路】
本程序的实现步骤为:首先遍历从2~n-1的所有整数;然后用条件语句找出能被n整除的所有整数,并累加求和;最后返回值。
【参考答案】
int fun(int n) { int s = 0, i; for(i=2; i<n; i++) if (n%i==0) s = s + i; return s; }