因子化简

原题链接

题解

暴力。
知识点 : exp(x) 返回 ex
如果这里先把所有的素数求出来的话,也要 n·n 也就是 1e15 ,所以直接遍历就好了

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;
}

posted @   纯粹的  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示