问答题
1. 请编写一个函数proc(),它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。
例如,主函数从键盘输入n的值为50,则输出为sum=754。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
long proc(int n)
{
}
void main()
{
int n;
long sum;
printf("Input n:");
scanf("%d",&n);
sum=proc(n);
printf("sum=%1d\n",sum);
}
【正确答案】long proc(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的因子是能够整除整数n的整数。题目要求计算并输出给定整数n的所有因子(不包括1与自身)的平方和,应该判断所有大于1且小于n的整数是否能够整除n。求出所有能够整除n并且大于1、小于n的整数的平方和。将得到的平方和返回给主函数。