#include<bits/stdc++.h>
using namespace std;
int main()
{
int l, r;
cin >> l >> r;
for (int i = r-1; i >= 1; i--)
{
int ll = ceil(1.0 * l / i) *i;//得区间内可以被i整除的大于等于左边界的数,可能大于r,在以下if排除掉,即ll<r
int rr = floor(1.0 * r / i)*i ;//得区间内可以被i整除的小于等于右边界的数,可能大于l,但是不知道为什么ll<r已经足够了
if (ll<r&&ll!=rr)
{
cout << i;
break;
}
}
}
求范围内任意两数的最大公约数的最大值【转载】
于 2024-02-04 20:38:37 首次发布