VC++编程题 编程实现对大于1的整数进行质因数分解,并求出其和
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/04 14:32:04
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的所有质因数,最后输出测试结果.
编程实现对大于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();
int primeNum(unsigned __int64 x,unsigned __int64 *fac);
void primeNum();
void printSum();
};
以下是cpp文件
////////////////////////////////////////////////////////////////////////////////////
// Decompose.cpp:implementation of the Decompose class.
//
//////////////////////////////////////////////////////////////////////
#include "Decompose.h"
#include "stdio.h"
#include "windows.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Decompose::Decompose()
{
num=NULL;
sum=NULL;
n=0;
}
Decompose::Decompose(int n,unsigned __int64 *num)
{
this->n=n;
this->num=new unsigned __int64[n];
sum=new unsigned __int64[n];
for(int i=0;inum[i]=num[i];
}
Decompose::Decompose()
{
if(num!=NULL)
delete[]num;
if(sum!=NULL)
delete[]sum;
}
unsigned __int64 sqrt64(unsigned __int64 x)
{
int i=(sizeof(unsigned __int64)>i)==1)
break;
i--;
}
return (unsigned __int64)11);
}
int Decompose::primeNum(unsigned __int64 x,unsigned __int64 *fac)
{
unsigned __int64 i=2,sqrtx=sqrt64(x);
int flen=0;
while(i
#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();
int primeNum(unsigned __int64 x,unsigned __int64 *fac);
void primeNum();
void printSum();
};
以下是cpp文件
////////////////////////////////////////////////////////////////////////////////////
// Decompose.cpp:implementation of the Decompose class.
//
//////////////////////////////////////////////////////////////////////
#include "Decompose.h"
#include "stdio.h"
#include "windows.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Decompose::Decompose()
{
num=NULL;
sum=NULL;
n=0;
}
Decompose::Decompose(int n,unsigned __int64 *num)
{
this->n=n;
this->num=new unsigned __int64[n];
sum=new unsigned __int64[n];
for(int i=0;inum[i]=num[i];
}
Decompose::Decompose()
{
if(num!=NULL)
delete[]num;
if(sum!=NULL)
delete[]sum;
}
unsigned __int64 sqrt64(unsigned __int64 x)
{
int i=(sizeof(unsigned __int64)>i)==1)
break;
i--;
}
return (unsigned __int64)11);
}
int Decompose::primeNum(unsigned __int64 x,unsigned __int64 *fac)
{
unsigned __int64 i=2,sqrtx=sqrt64(x);
int flen=0;
while(i
C++ 编程实现对大于1的整数进行质因数分解,并求出其和.所谓整数的质因子分解是指将整数分解为其所有质数
VC编程.求两个矩阵的和 并求出每个矩阵最大值的下标
c语言:编程实现求1+2+3+…+n之和,并输出当其和第一次大于或等于100时的值及n值.
编程实现求1+2+3+.+n之和,并输出当其和第一次大于或等于100时的值及n值.用c语言.
试编程实现循环输入文件中的整数,判断其能否被3、5、7整除,并对每个整数输出以下信息之一:(1) 能同
一道vfp程序题编程实现:计算1!+2!+3!+.,并显示其结果!
编程实现从键盘任意输入10个整数,统计其中奇数的个数,并计算这些奇数的和.
C语言 1)功能:编程实现使实型正数保留2位小数,并对第三位进行四舍五入.
java编程!用户从键盘输入一个整数n,程序求出n的累加和并输出.(如:1+2+3+4+……+n)
编程提示用户输入两个正整数,并求出它们的最大公约数,分别实现下 面三种算法:
定义一个变量a,由键盘输入其值为任意四位整数,编程实现分别输入个,十,百,千位四个数字,并各个数字的
编程求出斐波那契数列中第一个大于10000的元素.要求 使用Fortran中的循环分别编程实现