原文地址:(感谢作者)
素因子分解写的非常好!
数论一道好题:给以两个大整数n,s(n<=10^18,s<=10^12),试找到最大的整数k使得n! % s^k ==0 - (1)首先对S进行素因子分解,复杂度O(logN),用map存储,得到所有素因子以及素因子的幂
- (2)对于每一个素因子p,计算对应的n!中素因子p的幂(复杂度O(logn)),两者相除取所有p幂的最小值就是对应的最大整数k,总的时间复杂度为O(logs·logn)
❤求n!素因子p的幂要用累除法呀( ⊙ o ⊙ )!
1 #include 2 #include 3 #include 4 #include 5 #include