问答题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。程序的功能是寻找1~500以内的亲和数并显示出来,函数amicableNum(int m,int n)判定两个数是否是亲和数。亲和数的定义为:两个数m和n,如果n的所有因子之和(因子除掉自身)等于m,且m的所有因子等于n,则m、n是互为亲和数。注意:不能修改程序的其他部分,只能补充amicableNum(int m,int n)函数。#include<iostream.h>int amicableNum(int n){int sum=0;for(int i=1;i<n;i++){if(n%i==0){sum+=i;}}return sum;}bool amicableNum(int m,int n){}void main(){cout<<"1~500以内的亲和数有:"<<endl;for(int i=1;i<500;i++){for(int j=i+1;j<500;j++){if(i!=j){if(amicableNum(i,j)==1){cout<<i<<' '<<j<<endl;}}}}return;}
【正确答案】正确答案:if(amicableNUm(m)==n &&amicableNum(n)==m) return1; return0;
【答案解析】解析:(1)程序中定义了两个amicableNum()函数,由于参数个数不同重载了amicableNum()函数,函数amicableNum(int n)返回n的因子和,而函数amicableNum(int m,int n)则是判断m和n是不是亲和数,两个函数功能并不相同。 (2)在amicableNum(int m,int n)函数中,可调用amicableNum(int n)函数求m和n的因子和,然后比较两个因子和,如果两个因子和相同则返回真,否则返回假。