AcWing 5416. 因子化简
原题链接
简单
作者:
mahiru_
,
2024-09-06 03:02:00
,
所有人可见
,
阅读 4
C++ 代码
#include <iostream>
#include <cmath>
using namespace std;
long long n;
int k;
bool isprime(int x)
{
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0) return false;
}
return true;
}
int index(int x,long long t)
{
int count=0;
while(t%x==0)
{
count++;
t/=x;
}
return count;
}
int main()
{
int q;
scanf("%d",&q);
while(q--)
{
long long result=1;
scanf("%lld %d",&n,&k);
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0&&isprime(i))
{
int m=index(i,n);
if(k<=m) result*=pow(i,m);
}
}
printf("%lld\n",result);
}
return 0;
}