求n!中质因子p的个数

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;
}

猜你喜欢

转载自blog.csdn.net/Spidy_harker/article/details/88414504