makabaka qaq 2022-05-09 21:43 采纳率: 92.9%
浏览 38
已结题

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

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

  • 写回答

2条回答 默认 最新

  • 关注

    自然数区间类

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月10日
  • 已采纳回答 7月2日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析