偶尔在网上看到这个题目,但是他们所用的方法,无论是迭代还是递归,感觉都不够简洁。我想,这个看起来很简洁的抽象,应该有简单的方法,后来终于想出来了。
求一个整数的分解因式,如36=2*2*3*3;
代码如下:
//zhangjun03402@163.com
void fact(int n){
int i;
for(i=2; i<=n; i++)
if( n%i == 0 ){
if(i==n) //最后一个因子
printf("%d", i);
else
printf("%d*", i);
fact(n/i);
break;
}
}