#include<iostream> #include<bits/stdc++.h> using namespace std; const int N = 10000010; bool f = true; bool Sushu(long long x) { for (long long i = 2; i*i < x; i++) { if (x % i == 0) { return false; } } return true; } int main() { long long n; cin >> n; while (n--) { long long sum = 0, ssum = 1; long long n, k; cin >> n >> k; for (long long i = 2; i*i < n; i++) { sum = 0; if (Sushu(i) && n % i == 0) { while (n%i==0) { sum++; n = n / i; } if (sum >= k) { ssum *= pow(i, sum); } } } cout << ssum<<endl; } return 0; }
找素数的时候一定要写成i*i<n,不然的会超时。
csp认证.因子化简
最新推荐文章于 2024-07-23 18:35:33 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)