c++建立一个存放素数的类Prime

建立一个存放素数的类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调用成员函数完成求素数及输出素数的工作。

img


#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();
}