不是最优解,时间较长,但可能简单理解
C/C++题解:
具体思路,把n一步一步用素因子分解 从2开始 直到n被整除为1
然后记录每个素因子有几个和K数判断 记录到sum中
因为n<=10^10 所以用long long表示 sum也同理?
具体代码如下
#include<bits/stdc++.h>
using namespace std;
int main()
{
int q;
cin >> q;
long long n,sum;
int k,t;
while (q--) {
sum = 1;
cin >> n >> k;
for (int i = 2; i <= n; i++) {
if (n % i == 0) {
t = 0;
while (n % i == 0) {
n = n / i;
t++;
}
if (t >= k) {
sum *= pow(i, t);
}
}
if (n == 1)break;
}
cout << sum << endl;
}
return 0;
}