https://codeforces.com/problemset/problem/1485/A
除法和乘法等价的,要想a/b=0 其b必须大于a 即题目问的是b乘以几次大于a 最后再加上 a/b 的最后一次即可。
问题是: b是可以加的,那么何时乘b最优呢? 直接暴力枚举所有的b即可。 因为 231>1e9 故我们的b不会很大。
故直接枚举 b<x<b+30 即可
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
int main(void)
{
int t,a,b;
cin>>t;
while(t--)
{
cin>>a>>b;
LL ans=1e9;
for(int i=max(2,b);i<=b+30;i++)
{
LL sum=i;
LL cnt=0;
while(sum<=a) sum*=i,cnt++;
ans=min(ans,cnt+1+i-b);//cnt 是乘的次数 i-b是加的次数 +1是最后一次 除的次数
}
cout<<ans<<endl;
}
return 0;
}