写在前面
需要学会的前置技能:
快速幂
一颗热爱学习的心
笔者是一名十八线蒟蒻ACMer ACMerACMer,如果文章有误,请在评论区下留言,我会尽快处理,非常感谢!
注:这个方法并不是最优的,只是笔者在当时想到的一种方法,关于最优方法,各位可以看看出题人自己给出的题解。比较简洁。
再次重申!本文描述的不是最优解!
原题体面
时间限制:1s
空间限制:256 MB
Let’s introduce some definitions that will be needed later.
Let p r i m e ( x ) prime(x) prime(x) be the set of prime divisors of x x x. For example, p r i m e ( 140 ) = ( 2 , 5 , 7 ) prime(140)=(2,5,7) prime(140)=(2,5,7), p r i m e ( 169 ) = ( 13 ) prime(169)=(13) prime(169)=(13).
Let g ( x , p ) g(x,p) g(x,p) be the maximum possible integer p k p^k pk where k k k is an integer such that x x x is divisible by p k p^k pk. For example:
g ( 45 , 3 ) = 9 g(45,3)=9 g(45,3)=9 ( 45 45 45 is divisible by 3 2 = 9 3^2=9 32=9 but not divisible by 3 3 = 27 3^3=27 33=27),
g ( 63 , 7 ) = 7 g(63,7)=7 g(63,7)=7 ( 63 63 63 is divisible by 7 1 = 7 7^1=7 71=7 but not divisible by 7 2 = 49 7^2=49 72=49).
Let f ( x , y ) f(x,y) f(x,y) be the product of g ( y , p ) g(y,p) g(y,p) for all p p p in p r i m e ( x ) prime(x) prime(x). For example:
f ( 30 , 70 ) = g ( 70 , 2 ) ⋅ g ( 70 , 3 ) ⋅ g ( 70 , 5 ) = 2 1 ⋅ 3 0 ⋅ 5 1 = 10 f(30,70)=g(70,2)⋅g(70,3)⋅g(70,5)=2^1⋅3^0⋅5^1=10 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 ) = 3 2 ⋅ 5 0 ⋅ 7 1 = 63 f(525,63)=g(63,3)⋅g(63,5)⋅g(63,7)=3^2⋅5^0⋅7^1=63 f(525,63)=g(63,3)⋅g(63,5)⋅g(63,7)=32⋅50⋅7