前言
对这个题,我看题解,非常简单,但是不知道为什么。通过与老师讨论后解决疑惑,并给出了严谨的数学证明,在下面我逐一给出。
本题是CF Good Bye Problem - B - Codeforces
problem B
A certain number is chosen. You are given two integers and , which are the two largest divisors of the number . At the same time, the condition is satisfied.
For the given numbers , you need to find the value of .
The number is a divisor of the number if there is an integer such that .
Input
Each test consists of several test cases. The first line contains a single integer t — the number of test cases. Then follows the description of the test cases.
The only line of each test cases contains two integers a , b .
It is guaranteed that are the two largest divisors for some number .
Output
For each test case, output the number , such that a𝑎 and b𝑏 are the two largest divisors of the number .
If there are several answers, print any of them.
解法:
- 对于 时
- , 其中 是x的最小质因数 , 所以
- 对于 时
- , 其中p 最小的质因子 , q 是次最小的质因子 ,
接下来,我们将从两种情况分别证明:
- 首先来讨论第一种情况
(下文 mod 使用 % 代替)- 先来说明 , b = a * p , 其中 ,p 一定是质数。
-
证明:
考虑反证法:假设 a , b 满足 , b 是 x 最大的因子 , b 是x次大的因子 , 且 , 那么 一定满足 , 且p一定不是质数。
如果结论成立 , p 一定是由至少两个质数的乘积组成的(唯一分解定理), 那么我们还可以找到 , 比a大且比b小的因子 , 与前提矛盾,所以结论错误。 -
结论: 假设 a , b 满足 , b 是 x 最大的因子 , a 是x次大的因子 , 且(即第一种情况), 那么 一定满足 , 且
p 一定是质数。
-
- 为什么p 一定是最小的质因数 ?
-
先给出一个性质: 假设满足第一种情况 , 则 , 总有 成立。
- 证明:考虑反证法
- 假设第一种情况成立 , 我们有 , p 是质数 , 总有。 按照假设的结论 ,将a , b 全部写出 , 即 , , b将最小的质因子丢掉 , a 将丢掉一个次方。那么 , 与前提矛盾 ,假设不成立。
- 证明:考虑反证法
-
结论: 假设满足第一种情况, 则 。
-
通过这个结论我们知道,如果我们将 x 写成 , , 我们可以知道b 一定是去掉 一个 , a 去掉 , (这里的去掉 即
/), 这样结论就很显然。
-
- 结论:p 一定是
最小的质因数.
- 先来说明 , b = a * p , 其中 ,p 一定是质数。
我们上述结论的话 , 那么 成立。
- 讨论第二种情况
-
我们可以得到一些信息 , x 如果分解成 , b 一定是去掉了 , a 是去掉了 , 这样满足前提条件。
-
证明:
- 如果 , 但是 , b , a 又是
最大、次大的因子。 , 那么我们必然是去掉 , 为什么 一定是1? 因为如果大于等于 2 , 那么一定 , 建议认真思考一下 ,也可以参考第一种情况。 如果要符合条件的话 , b 只能拿掉 , a 只能拿掉 , 所以我们知道了 b , a 的表示。
- 如果 , 但是 , b , a 又是
-
, 那么我们通过 就可以算出 了 (读者可以将a,以及gcd(a , b)的表达形式写出来) 那么我们求出来最小质因子 , 那么 我们可以求出 (其中的 即是 p , q 即是)。
-
- 证毕
总结
这份证明,我思考了很久,终于在某天搞懂了,特此来记下。写的有不足的地方,如果您有好的建议,欢迎您指出。
致谢
本文内容,受到湖南信息学院通识教育学院周斌彬老师指导与启发,特此感谢!