整数因子分解的问题,请大家帮忙,大于1的正整数可以分解成n=x1*x2*x3…*xm,C++算法的题目,求助!

2025-02-27 15:26:49
推荐回答(1个)
回答1:

#include 
#include
using namespace std;
// 整数因子分解函数derive(),返回值为可以分解的次数
unsigned int derive(unsigned int num)
{
    // 分解次数time,初始化为0
    unsigned int time=0;
    // 变量n遍历除数,直至num-1
    for(int n=1;n    {
        // 如果num可以被n整除,则time自增
        if(num%n==0)
        {
            time++;
            // 如果n不为1且num被n除后的商不等于n,则进入递归
            if(n!=1 && (num/n)!=n)
            {
                time+=derive(num/n);
                time--;
            }
        }
    }
    return time;
}
int main(void)
{
    unsigned int num;
    cout<<"输入整数:";
    cin>>num;
    cout<    system("pause");
    return 0;
}