码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #589 (Div. 2) - C

时间:2019-09-30 09:58:21      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:整数   现在   pow   img   ++   nbsp   prim   com   最大   

技术图片

题目大意:$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

标签:整数   现在   pow   img   ++   nbsp   prim   com   最大   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!