整数因子分解问题
算法设计思路:
n=x1*x2*x3*…*xm,分治思想设计(分解过程):
n=x1*(x2*x3*…*xm);
n=x1*x2*(x3*…*xm);
…
n=x1*x2*x3*…*xm;
分治过程:
void factor(int n){
int i;
if(n==1)total++;
else for(i=2;i<=n;i++)
if(n%i==0)factor(n/i);//分解过程
}
正确性:
可以求出所有分解因子个数。
复杂性:
当n非素数时T(n)=O(logn);
当n是素数时T(n)=O(n);
所以T(n)=O(n)
2021-11-18 12:18:20
264B
整数因子分解
1