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;
}
posted @ 2022-03-23 20:30  Jason142  阅读(33)  评论(0编辑  收藏  举报