VC++编程题 编程实现对大于1的整数进行质因数分解,并求出其和

问题描述:

VC++编程题 编程实现对大于1的整数进行质因数分解,并求出其和
编程实现对大于1的整数进行质因数分解,并求出其和.所谓整数的质因子分解是指将整数分解为其所有质数(素数)因数的积,例如,60=2*2*3*5,则整数60的质因数之和为12.定义一个类Decompose实现上述功能.
具体要求如下:
(1) 私有数据成员
●int *a:指向存放对应整数的质因数之和的动态存储空间.
●int *num:指向待分解质因数整数的动态存储空间.
●int n:整数的个数.
(2) 公有数据成员
●Decompose(int m,int b[]):用m初始化n,并用n初始化为动态申请空间的指针a与num.用参数b给数组a赋值.
●void primenum():求整数a[i]的所有质因数,并将这些质因数之和存放到指针num所指向的存储空间中.
●-Decompose():释放动态分配的存储空间.
(3) 在主函数中完成对该类的测试.从键盘输入一组大于1的整数,存放在number数组中,定义类Decompose的对象d,并用number初始化d,调用函数primenum()求number的所有质因数,最后输出测试结果.

//#define IS_PRINT_FACTOR 1 //定义是否打印中间结果class Decompose {private:unsigned __int64 *num;unsigned __int64 *sum;int n;public:Decompose();Decompose(int n,unsigned __int64 *num);virtual Decompose...