1.暴力求解法:从1到n一个一个质因数分解,复杂度O(nlog(n)),太高了
2.现在我们考虑另一种解法
如上图可知含有2的因子的数为n/p,含有22的因子的数有n/22个,以此类推。
int cal(int n,int p)
{
int ans=0;
while(n)
{
ans+=n/p;
n/=p;
}
return ans;
}
1.暴力求解法:从1到n一个一个质因数分解,复杂度O(nlog(n)),太高了
2.现在我们考虑另一种解法
如上图可知含有2的因子的数为n/p,含有22的因子的数有n/22个,以此类推。
int cal(int n,int p)
{
int ans=0;
while(n)
{
ans+=n/p;
n/=p;
}
return ans;
}