建立一个存放素数的类Prime,具体要求如下。
①私有数据成员。
int a[25]:存放指定范围内的所有素数。
int n1,n2:存放指定范围的下限和上限
int num:存放素数的个数。
②公有成员函数
Prime(int m1,int m2):构造函数,用参数m1、m2初始化n1、n2,同时初始化num。
~Prime():析构函数,释放创建的对象空间。
void primef():求指定范围内的所有素数,把它们依次存放在数组a中。并将求出的素数个数赋给num。
void show():显示求出的素数的个数及所有的素数,每行输出5个素数。
③在主函数中定义一个Prime类的对象p(100,200),通过p调用成员函数完成求素数及输出素数的工作。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
class Prime
{
public:
Prime(int m1, int m2){
n1 = m1;
n2 = m2;
}
~Prime(){
}
void primef(){
num = 0;
for (int i = n1; i <= n2; ++i){
bool is_prime = true;
for (int j = 2; j <= i / 2; ++j){
if (i % j == 0){
is_prime = false;
break;
}
}
if (is_prime){
a[num] = i;
num = num + 1;
}
}
}
void show(){
cout << "num:" << num;
for (int i = 0; i < num; ++i){
if (i % 5 == 0)
cout << endl;
cout << a[i] << " ";
}
}
private:
int a[25];
int n1;
int n2;
int num;
};
int main(){
Prime p(100, 200);
p.primef();
p.show();
system("pause");
return 0;
}
#include<iostream>
#include<cmath>
using namespace std;
class Prime
{
int a[25];
int n1,n2;
int num;
public:
Prime(int m1,int m2):n1(m1),n2(m2),num(0){}
void primef()
{
int i, j;
bool f;
for(i = n1; i <= n2; i ++)
{
f = true;
for(j = 2; j <= sqrt(i); j ++)
if(i % j == 0)
{
f = false;
break;
}
if(f) a[num ++] = i;
}
}
void show()
{
int i;
for(i = 0; i <num; i ++)
{
if(i%5==0) cout << endl;
cout << a[i] << ' ';
}
cout << endl;
}
};
int main()
{
Prime p(100,200);
p.primef();
p.show();
}