P8219 [WFOI - 02] I wanna a feasitor(化验器)题解
题目:传送门
思路:
由于题目问的是某一段连续数字中除数字本身的最大约数,我们可以从最小约数来入手考虑(因为每一个最小约数都对应着一个最大约数),由于排除本身(最小约数排除 \(1\)),所以最小约数需要从 \(2\) 开始考虑,所以最大约数就是该段连续数字中最大的偶数除以 \(2\),又由于 \(2*n\) 和 \(2*n+1\) 整除 \(2\) 的商相等,所以答案就是 \([r/2]\)。注意:开 long long!
代码:
#include <bits/stdc++.h>
using namespace std;
long long l,r,s,i;
int main()
{
std::ios::sync_with_stdio(0);
cin.tie(); cout.tie();
cin>>l>>r;
s=r/2;
cout<<s<<endl;
return 0;
}