声明一个自然数区间类 [m,n],设计构造函数、默认构造函数和析构函数

声明一个自然数区间类 [m,n],设计构造函数、默认构造函数和析构函数,具有功能如下,主函数声明区间类对象并调用功能函数:
1.判断区间内的某一数是否是水仙花数;可以是 [0,某数n]
2.判断区间内的某一数是否是素数; 可以是 [0,某数n]
3.判断哥德巴赫猜想;
4.求两个自然数的最大公约数、最小公倍数;
5.求某一区间的完数(孪生数);

自然数区间类

#include <iostream>
#include <cstdlib>
using namespace std;
class cp
{
public:
    int m, n;
    cp(int m, int n)
    {
        if (m < n)
        {
            this->m = m;
            this->n = n;
        }
        else
        {
            this->m = n;
            this->n = m;
        }
    }
    ~cp() {}
    void narci()
    {
        int i, hun, ten, ind;
        int im = m >= 100 ? m : 100;
        int in = n <= 999 ? n : 999;
        for (i = im; i <= in; i++)
        {
            hun = i / 100;
            ten = (i - hun * 100) / 10;
            ind = i % 10;
            if (i == hun * hun * hun + ten * ten * ten + ind * ind * ind) /*各位上的立方和是否与原数n相等*/
                cout << i << " ";
        }
        cout << endl;
    }
    int isprime(int i)
    {
        if (i <= 1)
            return 0;
        for (int j = 2; j < i; j++)
        {
            if (i % j == 0)
                return 0;
        }
        return 1;
    }
    void prime()
    {
        int i;
        for (i = m; i <= n; i++)
        {
            if (isprime(i))
                cout << i << " ";
        }
        cout << endl;
    }
    void gef()
    {
        int i, j;
        for (i = m; i <= n; i++)
        {
            if (i % 2 == 0)
                for (j = 2; j <= i - 2; j++)
                {
                    if (isprime(j) && isprime(i - j))
                    {
                        cout << i << "=" << j << "+" << i - j << " ";
                        break;
                    }
                }
        }
        cout << endl;
    }
    void gcdlcm()
    {
        int a = m, b = n, c;
        while (b > 0)
        {
            c = a % b;
            a = b;
            b = c;
        }
        cout << "最大公约数为:" << a << endl;
        cout << "最小公倍数为:" << m * n / a << endl;
    }
    void perfect()
    {
        int i, j, sum;
        for (i = m; i <= n; i++)
        {
            sum = 0;
            for (j = 1; j < i; j++)
                if (i % j == 0)
                    sum += j;
            if (j == sum)
                cout << j << " ";
        }
        cout << endl;
    }
};

int main()
{
    int m, n;
    cin >> m >> n;
    cp p(m, n);
    cout << p.m << "到" << p.n << "区间的水仙花数" << endl;
    p.narci();
    cout << p.m << "到" << p.n << "区间的素数" << endl;
    p.prime();
    cout << p.m << "到" << p.n << "区间的验证哥德巴赫猜想" << endl;
    p.gef();
    cout << p.m << "和" << p.n << "最大公约数与最小公倍数" << endl;
    p.gcdlcm();
    cout << p.m << "到" << p.n << "区间的完数" << endl;
    p.perfect();
    return 0;
}

之后再添加类的各个功能函数即可

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632