题目描述
给定两个正整数𝐿,𝑅L,R,你可以任意选择两个正整数𝑥,𝑦x,y且满足𝐿≤𝑥<𝑦≤𝑅L≤x<y≤R,并求出𝑥,𝑦x,y的最大公约数。
请问在所有选法中,𝑥,𝑦x,y最大公约数的最大值为多少?
输入格式
输入共一行,两个正整数表示𝐿,𝑅L,R
输出格式
输出共一个整数,表示所求答案
数据范围
- 对于30%30%的数据,1≤𝐿<𝑅≤1001≤L<R≤100
- 对于60%60%的数据,1≤𝐿<𝑅≤1031≤L<R≤103
- 对于100%100%的数据,1≤𝐿<𝑅≤5×1051≤L<R≤5×105
样例数据
输入:
23 29
输出:
4
说明:
选(24,28)时,取到最大值为 4
输入:
32678 65536
输出:
32768
输入:
32768 32769
输出:
1
详见代码:
#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;
}