求大佬指点,错在哪了```cpp
#include
#include
#include
typedef long long ll;
using namespace std;
const int N=1e7;
ll judge[N];
ll x,y,l,r,maxa=1,maxb=1,length=0,xa,yb,i=-1;
ll count(int x,int y){
return log(y)/log(x);
}
int main(){
scanf("%lld%lld%lld%lld",&x,&y,&l,&r);
maxa+=count(x,r),maxb+=count(y,r);
for(ll a=0;a<=maxa;a++){
if(a==0) xa=1;
else xa*=x;
for(ll b=0;b<=maxb;b++){
if(b==0) yb=1;
else yb*=y;
if(xa+yb>r) break;
i++;
judge[i]=xa+yb;
}
}
sort(judge,judge+i+1);
for(ll j=0;j<=i;j++){
if(j==0) length=max(length,judge[j]-l);
else if(j==i) length=max(length,r-judge[j]);
else length=max(length,judge[j]-judge[j-1]-1);
}
cout<<length;
return 0;
}