将正数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]); }