请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。 例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。 注意:部分源程序给出如下。 请勿改动主函数mai

admin2009-02-15  98

问题 请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。
   例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
   #include  <stdio.h>
   long fun(int n)
   {
   }
   main()
   {
   int  n;
   long sum;
   printf("Input n:");
   scanf("%d",&n);
   sum=fun(n);
   printf("sum=%ld\n",sum);
   }

选项

答案long fun(int n) { int i; long s=0; for(i=2;i<=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ }

解析 本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。
转载请注明原文地址:https://kaotiyun.com/show/1TID777K
0

最新回复(0)