2020牛客暑期多校训练营(第四场)
Basic Gcd Problem
思路:答案即为 。
#include<iostream> typedef long long ll; using namespace std; const int mod=1e9+7; int main(){ int t,c,n; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&c); ll ans=1; for(int i=2;i*i<=n;i++)//筛选出所有素数 while(n%i==0){ n/=i; ans=ans*c%mod; } if(n>1) ans=ans*c%mod;//可能i是n的质因数,但当n不断除以素数,会导致 //i*i>n printf("%lld\n",ans); } return 0; }