用的就是题解里算因子和的公式,时间复杂的感觉也没问题,但就是#5,#8,#10TLE,而且T的都不多,除了#5到上限,#8只T了0.15s,#10只T了0.01s,到底是为什么,code:
#include <iostream>
#include <unordered_map>
#define mod 9901
int main(){
std::cin.tie(0)->sync_with_stdio(0);
int a,b,ans = 1;
std::unordered_map<int,int> decompose;
std::cin >> a >> b;
for (int i = 2;i * i <= a;i++)
while (a % i == 0)
a /= i,decompose[i]++;
if (a != 1) decompose[a]++;
for (auto i : decompose){
int pPow = 1;
long tmp = 0;
for (int j = 0;j <= i.second * b;j++) tmp += pPow,pPow = (long)pPow * i.first % mod;
ans = ans * (tmp % mod) % mod;
}
std::cout << ans << '\n';
return 0;
}