这是我的代码,但我想优化它.我不喜欢它在n的平方根之前测试所有数字的想法,考虑到一个人可能面临找到大数的因素的事实.你的答案会有很大的帮助.提前致谢.
unsigned int* factor(unsigned int n)
{
unsigned int tab[40];
int dim=0;
for(int i=2;i<=(int)sqrt(n);++i)
{
while(n%i==0)
{
tab[dim++]=i;
n/=i;
}
}
if(n>1)
tab[dim++]=n;
return tab;
}
Run Code Online (Sandbox Code Playgroud)