n!中质因子个数

//求n!中有多少个质因子p
//时间复杂度O(nlogn)
int cal1(int n, int p)
{
	int ans = 0;
	for (int i = 2; i <= n; i++)
	{
		int temp = i;
		while (temp % p == 0)
		{
			ans++;
			temp /= p;
		}
	}
	return ans;
}
//递推
int cal2(int n,int p)
{
	int ans = 0;
	while (n)
	{
		ans += n / p;
		n /= p;
	}
	return ans;
}
posted @ 2021-09-02 20:37  小帆敲代码  阅读(6)  评论(0编辑  收藏  举报