因子化简
题解
暴力。
知识点 : \(exp(x)\) 返回 \(e^x\)
如果这里先把所有的素数求出来的话,也要 \(n·\sqrt{n}\) 也就是 \(1e^{15}\) ,所以直接遍历就好了
code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
ll t;
cin>>t;
while(t--)
{
ll n,k;
cin>>n>>k;
ll len=exp(log(n)/k);
ll ans=1;
for(ll i=2;i<=len;i++)
{
ll cnt=0,tem=1;
while(n%i==0)
{
n/=i;
tem*=i;
cnt++;
}
if(cnt>=k) ans*=tem;
}
cout<<ans<<endl;
}
return 0;
}

浙公网安备 33010602011771号