CF1228C.Primes and Multiplication
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Let's introduce some definitions that will be needed later.
Let prime(x) be the set of prime divisors of x. For example, prime(140)=2,5,7, prime(169)=13.
Let g(x,p) be the maximum possible integer pk where k is an integer such that x is divisible by pk. For example:
- g(45,3)=9 (45 is divisible by 32=9 but not divisible by 33=27),
- g(63,7)=7 (63 is divisible by 71=7 but not divisible by 72=49).
Let f(x,y) be the product of g(y,p) for all p in prime(x). For example:
- f(30,70)=g(70,2)⋅g(70,3)⋅g(70,5)=21⋅30⋅51=10,
- f(525,63)=g(63,3)⋅g(63,5)⋅g(63,7)=32⋅50⋅71=63.
You have integers x and n. Calculate f(x,1)⋅f(x,2)⋅…⋅f(x,n)mod(109+7).
我们先引入一些后续需要用到的定义。
设 prime(x) 表示 x 的所有质因数构成的集合。例如,prime(140)={2,5,7},prime(169)={13}。
设 g(x,p) 表示形如 pk(其中 k 为非负整数)的最大整数,使得 x 能被 pk 整除。例如:
- g(45,3)=9(因为 45 能被 32=9 整除,但不能被 33=27 整除),
- g(63,7)=7(因为 63 能被 71=7 整除,但不能被 72=49 整除)。
设 f(x,y) 表示对所有 p∈prime(x),将 g(y,p) 相乘所得的乘积。例如:
- f(30,70)=g(70,2)⋅g(70,3)⋅g(70,5)=21⋅30⋅51=10,
- f(525,63)=g(63,3)⋅g(63,5)⋅g(63,7)=32⋅50⋅71=63。
给定整数 x 和 n,请计算 f(x,1)⋅f(x,2)⋅…⋅f(x,n)mod(109+7)。
输入格式
The only line contains integers x and n (2≤x≤109, 1≤n≤1018) — the numbers used in formula.
唯一的一行包含整数 x 和 n(2≤x≤109,1≤n≤1018)——公式中使用的数字。
输出格式
Print the answer.
输出答案。
输入输出样例
输入#1
10 2
输出#1
2
输入#2
20190929 1605
输出#2
363165664
输入#3
947 987654321987654321
输出#3
593574252
说明/提示
In the first example, f(10,1)=g(1,2)⋅g(1,5)=1, f(10,2)=g(2,2)⋅g(2,5)=2.
In the second example, actual value of formula is approximately 1.597⋅10171. Make sure you print the answer modulo (109+7).
In the third example, be careful about overflow issue.
在第一个例子中,f(10,1)=g(1,2)⋅g(1,5)=1,f(10,2)=g(2,2)⋅g(2,5)=2。
在第二个例子中,公式的实际值约为 1.597⋅10171。请确保输出答案对 (109+7) 取模的结果。
在第三个例子中,请注意溢出问题。
输入解题思路,AI测评打分。不知道怎么写?