[CP] 证明:在 1 ~ n 中选取互异的两个整数,它们的最大公因数必定小于等于 n / 2(向下取整)

在做 C. Yet Another Permutation Problem 的时候大胆猜测了如标题所述的结论(也不能说是猜测,只是找不到反例,所以就默认它是对的了),最终将题目成功做出。

我个人不太喜欢 “不明不白” 做出来的题目,必须把每一处细节都搞清楚,因此接下来对该结论进行证明。

证明:  a,b[1,n],n2a,bZ, ab,必有 gcd(a,b)n2

使用反证法,假设  a,b[1,n],n2a,bZ, ab,有 gcd(a,b)>n2

x=gcd(a,b)

不失一般性,令 a<b。由最大公因数的性质得:x<a<b

结合前面的假设,得到:n2<x<a<bn,根据最大公因数的定义,由:

{a=k1xb=k2x

其中,k1,k2N 。因为 a<b,所以 1k1<k2,可以推出 k22

b2x>2n2={n1,2| nn,2 | n

n 为奇数时,b>n1,那么 b 只能取 n,此时 x>n2=n12,因而 k2=nx<2nn13,所以 k2 只能取 2,但这样的话 b 就变成了偶数,矛盾;n 为偶数时,b>n,矛盾。

综上,无论如何都会得到矛盾的结果,因此  a,b[1,n],n2a,bZ, ab,必有 gcd(a,b)n2

虽然有点冗长,不过起码证出来了。官方解法中对于这部分的证明有点随意,算是对它的补充。

posted @   ZXPrism  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示