A-A+

请编写一个函数fun() 它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和

2022-08-05 22:55:09 问答库 阅读 173 次

问题详情

请编写一个函数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=%ldn",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; /将平方和返回*/}
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中去。

考点:整数,因子