天天看點

牛客多校簽到

牛客多校簽到

可以發現,要讓答案答案大,那麼c的次數多,也就是分解的次數多,那麼将某個n按照因數分解,c的因數的個數次就是答案了。

#include<iostream>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll qmi(int a,int b)
{
	ll res=1;
	while(b)
	{
		if(b&1)	res=res*a%mod;
		b>>=1;
		a=(ll)a*a%mod;
	}
	return res;
}
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n,c;
		scanf("%d%d",&n,&c);
		int cnt=0;
		for(int i=2;i<=n/i;i++)
			if(n%i==0)
			{
				while(n%i==0)
				n/=i,cnt++;
			}
		if(n>1)	cnt++;	
		printf("%lld\n",qmi(c,cnt));
	}
}