想问一下我这样写错在哪里了
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long long x,y,L,R;
int check(long long i)
{
for(long long a=1;1;a++)
{
for(long long b=1;1;b++)
{
if(pow(x,a)+pow(y,b)==i)
return 0;
if(pow(x,a)+pow(y,b)>i)
break;
}
}
return 1;
}
int main()
{
scanf("%lld%lld%lld%lld",&x,&y,&L,&R);
long long l=0,r=0,max=-1,flag=0;
for(long long i=L;i<=R;i++)
{
if(check(i)==1&&flag==0)
{
flag=1;
l=i;
}
if(check(i)==0&&flag==1)
{
flag=0;
r=i;
if(r-l+1>max)
max=r-l;
}
}
printf("%lld\n",max);
return 0;
}