侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】【上海】【区间最大公约数】

Allen Best
2023-08-02 / 0 评论 / 1 点赞 / 142 阅读 / 386 字
温馨提示:
本文最后更新于 2023-08-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

image.png
解析:
范围中L<=x<y<=R,如果找到满足题意的x和y,且其公约数记作a,x=am,y=an,使得L<=am<an<=R,
意味着
1,a*(n-m)<=R-L,也就是a这个最大公约数必须小于等于R-L
2,m=x/a>=L/a,且大于零
3,n=y/b<=R/a,且大于零
4,m<n
于是我们遍历R-L到1,如果能找到满足要求的m和n,同时就找到了x和y,以及满足要求的最大公约数a

#include <bits/stdc++.h>
using namespace std;
int main() {
    int l,r;
    cin>>l>>r;
    l=l-1;
    for (int i=r-l;i>=1;i--){
        if (r/i-l/i>1){
            cout<<i;
            return 0;
        }
    }
    return 0;
}
0

评论区