C语言解决整数因子分解问题。对于给定的正整数n,计算n共有多少种不同的分解式。

C语言解决整数因子分解问题。对于给定的正整数n,计算n共有多少种不同的分解式。,第1张

看不懂看c++参考文献

参考文献

#include
#include
#define maxsize 100
int count=1;//初始化计1,如18=18
void f(int *a,int m)//数组递归函数
{
    int i,j,k;
    int *p;
    for(i=0; i<=m; i++)
    {
        k=-1;
        p=(int*)malloc(sizeof(int)*maxsize);
        for(j=2; j         {
            if(a[i]%j==0)
            {
           
                k++;
                p[k]=j;//记录处自身之外的因子
            }
        }
        if(k>-1)//当数组不为空
        {
            f(p,k);//数组递归
            count=count+k+1;//累计结点数目
        }
        free(p);
    }
    return;
}
int main()
{
    int *a;//定义指针数组
    a=(int*)malloc(sizeof(int)*maxsize);
    //分空间
    scanf("%d",&a[0]);//存0位
    f(a,0);//递归初值
    free(a);//释放空间
    printf("%d",count);//输出因式树节点数目
    return 0;
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/577792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存