看不懂看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;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)