题目
请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与n自身)之和。规定n的值不大于1000。例如,在主函数中从键盘给n输入的值为856,则输出为: sum=763。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#pragma warning (disable:4996)
int fun(int n)
{
int i,sum=0;
if(n<1000){
for(i=2;i<n;i++){
if(n%i==0){
sum+=i;
}
}
}
return sum;
}
main()
{ int n,sum;
void NONO( );
printf("Input n: "); scanf("%d",&n); getchar();
sum=fun(n);
printf("sum=%d\n",sum);
NONO();
getchar();
}
void NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int i, n, sum ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
sum = fun(n) ;
fprintf(wf, "%d=%d\n", n, sum) ;
}
fclose(rf) ; fclose(wf) ;
}