首页 > 其他 > 详细

Codeforces Round #589 (Div. 2) - C

时间:2019-09-30 10:20:44      阅读:209      评论:0      收藏:0      [点我收藏+]

技术分享图片

题目大意:$prime(x)$ 代表 $x$ 的质因数的集合。

                  $g(x, p)$ 代表 $p^k$ 的最大值, $k$ 为整数,并且 $x$ 可以被 $p^k$ 整除。

                  $f(x, p)$ 代表 对于 $prime(x)$ 中的每一个 $x$ 的 $g(x, p)$ 值。

                  现在给定 $x, n$ 求 $f(x, 1) * f(x, 2) * ... *f(x, n) mod (10^9 + 7)$ 的值。

思路:对于 $x$ 进行质因数分解,分别考虑每一个 $prime(x)$ 对答案做出的贡献,假设目前的质因数为 $p_i$ , 那么 $n$ 个数中有 $n / p_i$ 个数可以被 $p_i$ 整除,之后考虑 $p_i ^ 2$ 的情况,如果小于 $n$ 则他对答案有贡献,根据上面可知有 $n / p_i^2$ 个数字可以被 $p_i^2$ 整除,但是这两个里面有重复的数字, 需要去掉.

	for(int i = 1; i <= m; ++i)
	{
		ll t = n;
		while(t / p[i] != 0)
		{
			ll num = t / p[i];
			ans = ans * pow_mod(p[i], num, MOD) % MOD;
			t /= p[i];
		}
	}

  

Codeforces Round #589 (Div. 2) - C

原文:https://www.cnblogs.com/zssst/p/11610852.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!