将正数n分解质因数并输出的操作
我用的是指针,但是结果不尽人意
程序代码:#include <stdio.h>
int t;
int *p(int m)
{int i,j,a[400],f,*pt;
a[0]=2;a[1]=3;t=2;
for(i=4;i*i<=m;i++)
{f=1;
for(j=2;j*j<=i;j++)
if(i%j==0)f=0;
if(f){a[t]=i;t++;}
}//problem
pt=a;
return pt;
}
int main(void)
{int *q,b[200],n,m,i,l;
l=0;
printf("Please input the integer n:\n");
scanf("%d",&n);m=n;
q=p(n);
i=0;while(i<=t){printf("%d ",*(q+i));i++;}i=0;
while(n!=1)
{if(n%(*(q+i))==0){b[l]=*(q+i);l++;n=n/(*(q+i));i=0;continue;}
i++;}
printf("%d=",m);
for(i=0;i<=l;i++)
printf("%d ",b[i]);
}

