1 条题解
-
0
自动搬运
来自洛谷,原作者为

Log_x
**搬运于
2025-08-24 21:34:33,当前版本为作者最后更新于2017-07-10 21:32:26,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
楼上一群神犇……我就解释下原理吧
对于 的 有:
[1]. 若 为奇数, 为偶数,
表示 存在2这个因子而 不存在,则将 除以2,,不考虑因子2;
[2]. 若 为偶数, 为奇数,
表示 存在2这个因子而 不存在,则将 除以2,不考虑因子2;
[3]. 若 为偶数, 为偶数,
表示 都存在2这个因子,则 也存在因子2,则将当前答案乘以2, 都除以2;
[4]. 若 为奇数, 为奇数,
即辗转相减法(更相减损术),实际上可以看做辗转相除法的变形(因为减到不能再减实际上就是取余)。
最后顺便附上辗转相除法的证明:
(摘自http://blog.sina.com.cn/s/blog_6938cd0501010pj1.html)
设两数为,求它们最大公约数的步骤如下:用 除 ,得 ( 是这个除法的商)。若 ,则 是 和 的最大公约数。若 ,则继续考虑。
首先,应该明白的一点是任何 和 的公约数都是 的公约数。要想证明这一点,就要考虑把 写成 。现在,如果 和 有一个公约数 ,而且设 , 那么 。因为这个式子中,所有的数(包括 )都为整数,所以 可以被 整除。
对于所有的 的值,这都是正确的;所以 和 的最大公约数也是 和 的最大公约数。因此我们可以继续对 和 进行上述取余的运算。这个过程在有限的重复后,可以最终得到 的结果,我们也就得到了 和 的最大公约数。
- 1
信息
- ID
- 1155
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者