提交时间:2025-10-18 14:04:55
运行 ID: 38640
#include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=4e4+10; const ll inf=1e10; const ll mod=1e9+7; ll n,m,t; ll a[maxn],dis[maxn]; int _gcd(int a,int b){ if(!b) return a; return _gcd(b,a%b); } ll q_pow(ll a,ll b){ ll tmp=1; while(b>0){ // cout<<b<<" "<<a<<" "<<tmp<<endl; if(b&1){ tmp=tmp*a; } b>>=1; a=a*a; } return tmp; } ll calc(ll x){ x=q_pow(x,8); //cout<<x<<" 1111111111\n"; for(ll i=1;i<=x;i++){ if(q_pow(i,7)>x){ //cout<<x<<" 111111111\n"; //cout<<i<<endl; return i-1; } } return 1; } int main(){ //freopen("biggraph.in","r",stdin); // freopen("biggraph.out","w",stdout); scanf("%lld",&t); memset(dis,0,sizeof(dis)); dis[1]=1; for(int i=2;i<=32000;i++){ for(int j=1;j<=54;j++){ dis[i]=max(dis[i],dis[i/j]*calc(j)); } } while(t--){ scanf("%lld%lld",&n,&m); ll tmp=(ll)(sqrt(m/n)); printf("%lld\n",dis[tmp]); } fclose(stdin); fclose(stdout); return 0; }