打开解决方案文件proj3,此工程文件包含了3个文件,分别是头文件“Number_Intimacy.h”、源程序文件“Number_Intimacy.cpp”和源程序文件“main.cpp”。在头文件“Number_Intimacy.h”中声明了一个亲密数类Intimacy,用于求区间[min,max]内的亲密数对。若整数a的所有正因子之和(包括1,不包括a)与整数b的所有正因子之和(包括1,不包括b)相等,则称整数a和b是亲密数对。如20和38的正因子之和都为22,所以20和38是亲密数对;23和29的正因子之和都为1,所以23和29也是亲密数对;23和31同样是亲密数对。请将源程序文件“Number_Intimacy.cpp”中的成员函数Find补充完整,补充内容填写在”//333”与”//666”两行之间。
在main函数中输入测试数据20和40时,此时程序的输出应该是:
输入区间的起始数:20
输入区间的终止数:40
20 38
23 29
23 31
23 37
27 35
29 31
29 37
31 37
[20,40]之间有8对亲密数。
[程序]
//Number_Intimacy.h
#include
using namespace std;
class Intimacy{
public:
Intimacy(int,int);
int Sum(int n); // 求整数n的所有正因子之和
void Find(); // 查寻区间内的亲密数对
private:
int min,max; // 表示区间[min,max]的起始数和终止数
int count; // 区间内亲密数的对数
};
void writeToFile(const string); // 不用考虑此语句的作用
//Number_Intimacy.cpp
#include"Number_Intimacy.h"
#pragma warning(disable:4996) // 不用考虑此语句的作用
Intimacy::Intimacy(int n1,int n2):min(n1),max(n2)
{
count=0;
}
int Intimacy::Sum(int n)
{
int i=1,s=0;
while(iif(n%i==0){
s+=i;
}
i++;
}
return s;
}
void Intimacy::Find()
{
int i,j;
//********333********
//********666********
}
//main.cpp
#include"Number_Intimacy.h"
int main()
{
int m,n;
cout<<"输入区间的起始数:";
cin>>m;
cout<<"输入区间的终止数:";
cin>>n;
Intimacy test(m,n);
test.Find();
return 0;
}
解题说明:
1、可将下列压缩文件“proj3.zip”下载到计算机中,解压后用VC2010对程序进行调试运行,即找到并双击文件“proj3.sln”打开解决方案,然后操作。
(1)源程序文件在解决方案管理器的Source Files文件夹中,头文件在Header Files文件夹中。
(2)为了避免运行结果闪退,方便调试,可在主函数“return 0;”语句前添加语句“system(“pause”);”,调试结束后再删除添加的该语句。
3、操作完成后,将答案(补充内容)填写到实验系统中。