#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; using mint=modint1000000007; int main() { int t; cin>>t; while(t--){ int n, c; cin>>n>>c; vector vd; for(int i=1; i*i<=n; i++){ if(n%i==0){ vd.push_back(i); if(i*i vc(m); mint ans=mint(c).pow(n)*n; for(int i=m-1; i>=0; i--){ vc[i]=n/vd[i]; for(int j=i+1; j