刚才在讨论里面见到这题,发现可以用二分做,但是悲惨地wa了一个点qwq,求助。(二分都做错的我是屑)
链接
https://atcoder.jp/contests/arc137/tasks/arc137_a
代码如下
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=(1e5)+5;
ll L,R;
bool check(ll x){
for(ll i=L;i<=R-x;i++){
if(__gcd(i,i+x)==1)return true;
}
return false;
}
int main(){
scanf("%lld%lld",&L,&R);
ll l=0,r=R-L;
ll ans=1;
while(l<=r){
ll mid=(l+r)/2;
if(check(mid)){
ans=mid;
l=mid+1;
}
else r=mid-1;
}
printf("%lld",ans);
return 0;
}