What comes after, tiny fractures!|

落花月朦胧

园龄:3年6个月粉丝:14关注:10

P8219 [WFOI - 02] I wanna a feasitor(化验器) 题解

P8219 [WFOI - 02] I wanna a feasitor(化验器)题解

题目大意

给出 l,r,求 maxf(x)[lxr]f(x)表示不为 xx 的最大公约数。

Solution

  • x 为偶数时就是 f(x)=x/2
  • x 为奇数时 f(x) 要么是 1 要么是 x/dd 一定是大于 2 的, d 是对于 x 来说最小的不为 1 的因数。

要让一个数的最大公约数最大就要让这个数最大,那么就只需要看 r

  • 如果 r 是奇数,那么 r1 就是偶数, 显然f(r1) 函数值会大于 f(r)

  • 如果 r 是偶数,那么 r1 就是奇数, 显然f(r) 函数值会大于 f(r1)

于是就有 O(1) 了。

Code:

/*
Writer: ZhengXiangYu
*/
#include <bits/stdc++.h>
using i64 = long long;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
i64 l, r;
std::cin >> l >> r;
if (r % 2 == 0) {
std::cout << r / 2 << "\n";
} else {
std::cout << (r - 1) / 2 << "\n";
}
return 0;
}

本文作者:Falling-flowers 的 blog

本文链接:https://www.cnblogs.com/falling-flowers/p/16027708.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   落花月朦胧  阅读(50)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起