永发信息网

一个非零的自然数可以被分解为多个二的乘幂之和是一个著名的数学定理

答案:1  悬赏:50  手机版
解决时间 2021-01-24 21:47
一个非零的自然数可以被分解为多个二的乘幂之和是一个著名的数学定理
最佳答案
#include 
using std::cin;
using std::cout;
using std::endl;

class Array {
protected:
    int* a;
public:
    const int len;
public:
    Array(const int& n) :len(n) {
        this->a = new int[n];
    }
    inline int& operator[](int& ix) {
        return this->a[ix];
    }
    inline int operator[](int& ix)const {
        return this->a[ix];
    }
    Array(const Array& a) :len(a.len) {
        this->a = new int[a.len];
        for (int i = 0; i < a.len; i++) {
            this->a[i] = a.a[i];
        }
    }
    Array& operator=(const Array& a) {
        *const_cast(&this->len) = a.len;
        delete[] this->a;
        this->a = new int[a.len];
        for (int i = 0; i < a.len; i++) {
            this->a[i] = a.a[i];
        }
    }
    ~Array() {
        delete[] a;
    }
};


//分解
Array factorial(int M) {
    int n = 0;
    int M1 = M;
    for (int k = 2; k < M; k++) {
        if ((M % k) == 0) {
            n++;
            M = M / k;
            k = 1;
        }
    }
    n++;
    Array arr(n);
    n = 0;
    for (int k = 2; k < M1; k++) {
        if ((M1 % k) == 0) {
            arr[n] = k;
            n++;
            M1 = M1 / k;
            k = 1;
        }
    }
    arr[n] = M1;
    return arr;
}
int main() {
    int size;
    cout << "输入个数:";
    cin >> size;
    int* n = new int[size];
    for (int i = 0; i < size; i++) {
        cout << "请输入一个正整数:";
        cin >> n[i];
    }
    for (int i = 0; i < size; i++) {
        Array a = factorial(n[i]);
        for (int i = 0; i < a.len; i++) {
            cout << a[i] << " ";
        }
        cout << endl;
    }
    delete[] n;
    system("pause");
    return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乐园宠物诊所怎么去啊,我要去那办事
把猫扔了 结果头也不回的走啦
【健康秤】健康秤和普通秤的区别是什么?人体
步龙800E跑步机总功率是多少KW啊
106.11÷2.7列竖式计算
一般的班车,洗车一次大概需要多少钱?
圣大二手车地址在什么地方,我要处理点事
鑫灵宠物诊所地址在哪,我要去那里办事
什么是股权质押融资
新浪微博评论很多几百页怎么直接看到最早评论
北京有限合伙公司能注册吗?
我微信被骗了900怎么办
结婚以后的感慨
喜尔宠物诊所雁宁路店地址好找么,我有些事要
【洽谈区】英语翻译休憩区演示区洽谈区办公区
推荐资讯
idea怎样创建scala object
耽美里的omega是什么意思?求解,不要复制的
你好 我手机自动安装了个天天色播 看百度里他
邢台有桥西宠物店都在哪?
义合中学地址在什么地方,想过去办事
有没有招收往届初中毕业生的技校?
天都国际旅行社地址在什么地方,我要处理点事
丝锥M36x2总长是多少
江波渡居委会地址好找么,我有些事要过去
泥猛打汤怎么做
厦门“怪坡”是啥原理造成的?
找一篇叫一直很安静的文章
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?