1、用C++语言实现。求某一个数据段内[begin,end]的所有素数。其中,begin、end在主程序运行时输入,素数类的定义如下。要求:
(1)依照类的定义,完善成员函数的定义;
(2)类的定义、主程序的语句,不能修改。
//求某一个数据段内的素数。类的定义:
#include
#include
using namespace std;
#define MAX 300
class Prime {
public:
void Set_Beg_End(int b,int e); //获得begin、end的数据
void Prt(); //打印所有的素数
void Calculate_Prime(); //计算所有的素数
bool IsPrime(int n); //判断n是否为素数
private:
int beg; //范围的开始值
int end; //范围的结束值
int count; //实际素数的个数
int prime_data[MAX]; //素数存放的数组,最大个数为MAX
};
//完善成员函数的定义
int main() //主程序不要修改,且输入的bgein、end的数据为2、500。
{ Prime number;
number.Set_Beg_End(2,500); //begin、end的值为2、500
number.Calculate_Prime();
number.Prt();
}
素数就是从2到n-1没有能被n整除的数。代码如下:
#include <iostream>
using namespace std;
#define MAX 300
class Prime {
public:
void Set_Beg_End(int b,int e); //获得begin、end的数据
void Prt(); //打印所有的素数
void Calculate_Prime(); //计算所有的素数
bool IsPrime(int n); //判断n是否为素数
private:
int beg; //范围的开始值
int end; //范围的结束值
int count; //实际素数的个数
int prime_data[MAX]; //素数存放的数组,最大个数为MAX
};
//完善成员函数的定义
void Prime::Set_Beg_End(int b,int e)
{
beg = b;
end = e;
}
void Prime::Prt()
{
int i=0;
for(;i<count;i++)
{
if(i<count-1)
cout <<prime_data[i]<<" ";
else
cout <<prime_data[i]<<endl;
}
}
void Prime::Calculate_Prime()
{
int i=beg;
count = 0;
for(;i<=end;i++)
{
if(IsPrime(i))
prime_data[count++] = i;
}
}
bool Prime::IsPrime(int n)
{
if(n<2) return false;
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
return false;
}
return true;
}
int main() //主程序不要修改,且输入的bgein、end的数据为2、500。
{ Prime number;
number.Set_Beg_End(2,500); //begin、end的值为2、500
number.Calculate_Prime();
number.Prt();
}