龙空技术网

数论问题精选,你想做的都在这里!

超级数学建模 1376

前言:

此时大家对“c语言n个数最小公倍数”大体比较珍视,兄弟们都想要学习一些“c语言n个数最小公倍数”的相关文章。那么小编也在网上搜集了一些有关“c语言n个数最小公倍数””的相关资讯,希望你们能喜欢,小伙伴们快快来了解一下吧!

别急

慢慢做

上次分享了一波数竞几何题(传送门),然后有模友表示不过瘾(估计失眠有点严重),想再来一波数论的。。。

既然这样,那在这美好的周末,超模君特此奉上12道来自单墫教授主编的奥数书——《初等数论》里面的精彩数论题,请模友们过目!

01

问题:

找出所有使得 2n – 1 能被 7 整除的正整数 n 。

答案:

由于 2n 的二进制表达为 1000…00 (n 个 0),因此 2n – 1 的二进制表达为 111…11 (n 个 1)。

而 7 的二进制表达是 111 ,要想让它整除 n 个 1 ,显然 n 必须是也只能是 3 的倍数。

02

问题:

是否存在 100 个数,使得它们的和等于它们的最小公倍数?

答案:是的。

考虑 3, 2 × 3, 2 × 32 , 2 × 33, …, 2 × 398, 399 ,它们的和为:

3 + 2 × 3 + 2 × 32 + 2 × 33 + … + 2 × 398 + 399

= 3 × (1 + 2) + 2 × 32 + 2 × 33 + … + 2 × 398 + 399

= 32 + 2 × 32 + 2 × 33 + … + 2 × 398 + 399

= 32 × (1 + 2) + 2 × 33 + … + 2 × 398 + 399

= 33 + 2 × 33 + … + 2 × 398 + 399

= … …

= 399 + 399

= 2 × 399

而这 100 个数的最小公倍数正是 2 × 399 。

03

问题:

能否找出 100 个不同的正整数,使得其中任意 2 ≤ k ≤ 100 个数的算术平均数都恰为整数。

答案:能。

这个问题非常唬人,它的答案异常简单: 1 · 100!, 2 · 100!, 3 · 100!, …, 100 · 100! 显然满足要求。

04

问题:

求证,存在任意长的连续正整数,使得其中任何一个数都不是质数的幂(当然更不能是质数)。

答案:

有一个经典的问题是,求证存在任意长的连续正整数,它里面不包含任何质数。

换句话说,相邻质数的间隔可以达到任意大。构造的方法堪称经典。

显然 n! + 2 是 2 的倍数(因为我们可以提出一个 2 来), n! + 3 是 3 的倍数,等等。

因此, n! + 2, n! + 3, n! + 4, …, n! + n 就是 n – 1 个连续的正整数,其中任意一个数都不是质数。由于 n 可以任意大,因此这个数列可以任意长。

现在,我们要证明的是一个更强的结论。我们可以把刚才的构造方案简单地修改一下。

只需要考虑 (n!)² + 2,(n!)² + 3,(n!)² + 4, …, (n!)² + n ,则其中每一个数都不是质数的幂。

比如说 (n!)²+ 5 ,显然它是 5 的倍数,因为我们可以提出一个 5 来;然而提出一个 5 之后将会得到 5 · (1²· 2² · 3² · 4² · 5 · 6² · … · n² + 1) ,括号里的数显然不再是 5 的倍数,它除以 5 余 1 。

利用中国剩余定理,我们还能给出另一种非常巧妙的构造方案,它能找出 n 个不含质数幂的连续正整数数列,其中 n 可以任意大。

我们只需要保证,每个数都含有至少两个不同的质因数即可。

取 2n 个不同的质数 p1, p2, …, pn, q1, q2, …, qn ,显然 p1 · q1, p2 · q2, …, pn · qn 是两两互质的 n 个数。

由中国剩余定理,我们能找到一个正整数 M ,使得 M 除以 p1 · q1 余 1 ,并且 M 除以 p2 · q2 余 2 ,并且 M 除以 p3 · q3 余 3 ,一直到 M 除以 pn · qn 余 n 。

于是, M – 1, M – 2, M – 3, …, M – n 就是 n 个连续的正整数,其中每一个都含有两个不同的质因数。

05

问题:

求证,对于任意大的 n ,我们都能够找出 n 个两两互质的数,使得任意 2 ≤ k ≤ n 个数之和都不是质数

答案:

如果只要求任意多个数之和都不是质数,这很好办:让所有数都是某个数的倍数即可。

但是,如果这些数必须两两互质,同样的要求还能办到吗?

可以的。

考虑 n! + 1, 2 · (n!) + 1, 3 · (n!) + 1, …, n · (n!) + 1 这 n 个数,显然任意 k 个数之和都是 k 的倍数,因而不是质数。

下面说明这 n 个数两两互质。假设 i · (n!) + 1 和 j · (n!) + 1 有公共的质因数 p ,其中 1 ≤ i < j ≤ n ,那么它们的差 (j - i) · (n!) 也能被 p 整除,说明 p 只能是不超过 n 的质数。这与 p 能整除 i · (n!) + 1 矛盾。

06

问题:

证明,对于任意正整数 n ,方程 x² + y² = zⁿ 都有无穷多组正整数解。

答案:

考虑 x + yi = (a + bi)ⁿ ,其中 i 为虚数单位。

对于每一个固定的 n ,只要 a 和 b 都是整数,那么展开后得到的 x 和 y 也都一定是整数。

我们选取充分大的 a ,让 a + bi 的辐角非常小非常小(小于 π/2 的 n 分之一),从而让 (a + bi)ⁿ 不会与坐标轴重合,因而保证 x 和 y 都是非零整数。

等式两边同时取模,便有 x² + y² = (a² + b²)ⁿ

07

问题:

我们把平面直角坐标系上所有横纵坐标互质的整格点(也就是和原点的连线不经过其他点的整格点)叫做“既约格点”。

证明,对于任意大的正整数 n ,总存在一个整格点,它到任意既约格点的距离都大于 n (换句话说,既约格点集的“空洞”可以达到任意大)。

答案:

列一张 (2n + 1) × (2n + 1) 的表,每个格子里面填写一个不同的质数(由于质数无穷多,这是总可以办到的)。

现在,找出这样的一个 a ,它除以第 i 行的质数总是余 i (其中 – n ≤ i ≤ n )。

找出这样的一个 b ,它除以第 j 列的质数总是余 j (其中 -n ≤ j ≤ n)。

中国剩余定理保证了这样的 a 和 b 是存在的。

下面说明,点 (a, b) 满足要求。

假如 (a, b) 到 (x, y) 的距离不超过 n ,则 (a – x)² + (b – y)² ≤ n² 。

因而, a – x 和 b – y 都必须在 – n 到 n 的范围内。

把 a – x 的值记作 i ,把 b – y 的值记作 j ,那么 x 就等于 a – i , y 就等于 b – j ,由 a 、 b 的构造可知, x 和 y 都是表格中第 i 行第 j 列的那个质数的倍数,故 (x, y) 不是既约格点。

08

问题:

找出所有这样的正整数序列 (a1, a2, …, an) ,它们的和为 2n ,但我们无法把它们分成和相等的两组。

答案:

考虑 a1, a2, a1 + a2, a1 + a2 + a3, …, a1 + a2 + a3 + … + an ,除了 a1 和 a2 以外,这些数除以 n 的余数不允许相等,否则它们的差就是 n 的倍数,我们就找到了和为 n 的子集。

然而,上面一共有 n + 1 个数,它们除以 n 的余数必然有相等的,因而一定是 a1 和 a2 除以 n 的余数相等。

类似地, a2 和 a3 除以 n 的余数也相等, a3 和 a4 除以 n 的余数也相等,因而事实上从 a1 到 an 所有的数除以 n 的余数都是相等的。

但是这 n 个数加起来只有 2n ,可见所有的数除以 n 的余数只可能都是 1 或者都是 2 。

于是我们得到了所有满足要求的数列: (1, 1, 1, …, 1, n + 1) ,以及 (2, 2, 2, …, 2) 。其中后者要求 n 为奇数。

09

问题:

证明,存在无穷多个正整数三元组 (a, b, c) ,使得 a² + b² 、 b² + c²、 a² + c² 都是完全平方数。

答案:

任取一组勾股数 (x, y, z) ,令 a = x|4y2 – z2| , b = y|4x2 – z2|, c = 4xyz 。于是,

a² + b² = x²(3y² – x²)² + y²(3x² – y²)²

= x6 + 3x²y4 + 3x4y² + y6

=(x² + y²)³ = (z³)²

a² + c² = x²(4y² + z²)²

b² + c² = y²(4x² + z²)²

从而 a 、 b 、 c 满足要求。由于勾股数有无穷多组,因此满足要求的 (a, b, c) 也有无穷多组。

这相当于给出了 Euler 砖块(所有棱长和所有面对角线都是整数的长方体)的一种构造解。

当 (x, y, z) = (3, 4, 5) 时,我们将得到棱长分别为 117 、 44 、 240 的 Euler 砖块,这就是最小的 Euler 砖块,它是由 Paul Halcke 在 1719 年发现的。

大家或许会想,有没有什么长方体,不但所有棱长和所有面对角线都是整数,连体对角线也是整数呢?

这样的长方体就叫做完美长方体。

有趣的是,虽然 Euler 砖块有无穷多种,但是人们目前还没有找到哪怕一个完美长方体。完美长方体究竟是否存在,目前仍然是一个未解之谜。

10

问题:

证明,若正整数 a 和 b 互质,则 [b / a] + [2b / a] + [3b / a] + … + [(a – 1) b / a] = (a – 1)(b – 1) / 2 。其中, [n] 是 n 的整数部分,即对 n 取下整。

答案:

我们先举一个例子来说明这个问题的复杂性。

数列 [b / a], [2b / a], [3b / a], …, [(a – 1) b / a] 的规律并不一定非常明确。

例如,当 a = 17 且 b = 12 时, [12 / 17], [2 · 12 / 17], [3 · 12 / 17], … [16 · 12 / 17] 分别为 0, 1, 2, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 9, 10, 11 ,但这 16 个数之和为 88 ,正好是 16 和 11 乘积的一半。

结论的证明很有意思。在平面直角坐标系的第一象限摆放一个宽为 a ,高为 b 的矩形。

则 [k · b / a] 就是图中第 k 条红色竖直线上的整格点数目,所有 [k · b / a] 之和也就是阴影三角形内的整格点总数。

然而由于 a 和 b 互质,矩形的对角线不会经过矩形内部的任何格点,因此阴影三角形内的整格点数就应该是矩形内的整格点数的一半,即 (a – 1)(b – 1) / 2。

11

问题:

若正无理数 α 和 β 满足 1 / α + 1 / β = 1 ,求证数列 [1 · α], [2 · α], [3 · α], … 和 [1 · β], [2 · β], [3 · β], … 既无重复又无遗漏地包含了所有的正整数。这里 [ ] 同样是取下整的意思。

答案:

让我们先来看一个例子吧。

考虑黄金比例 φ = (√5 + 1) / 2 ≈ 1.618 ,我们有 1 / φ + 1 / (φ + 1) = 1 。

数列 [1 · φ], [2 · φ], [3 · φ], … 为 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, … ,而数列 [1 · (φ + 1)], [2 · (φ + 1)], [3 · (φ + 1)], … 则为 2, 5, 7, 10, 13, 15, 18, 20, 23, 26, … 。

你会发现,前一个数列里没有的数,正好都在后一个数列里,而后一个数列里没有的数,前一个数列里正好都有。

两个数列合在一起,就是整个正整数序列。

这个定理叫做 Beatty-Rayleigh 定理,它有很多种证明,这里给出一种我非常喜欢的证明,它出自 Using your Head is Permitted 。

首先注意到,如果 x 和 y 都不是整数,那么 [x] 严格地小于 x ,[y] 严格地小于 y ,从而 [x] + [y] < x + y 。

另外,[x] 一定严格地大于 x – 1 , [y] 一定严格地大于 y – 1 ,从而 [x] + [y] 一定严格地大于 x + y – 2。

这说明,当 x 和 y 都不是整数时, [x] + [y] 将介于 x + y – 2 和 x + y 之间。

回到原问题。

显然,在第一个数列中,小于 n 的正整数有 [n / α] 个。显然,在第二个数列中,小于 n 的正整数有 [n / β] 个。

因此,在这两个数列中,小于 n 的正整数共有 [n / α] + [n / β] 个。

由于 α 和 β 都是无理数,因此 n / α 和 n / β 不可能为整数,由刚才的结论, [n / α] + [n / β] 一定介于 n / α + n / β – 2 和 n / α + n / β 之间,即 n – 2 和 n 之间。

但是, [n / α] + [n / β] 是个整数,因而它精确地等于 n – 1 。

这说明,前 n – 1 个正整数在两个数列中一共出现了 n – 1 次,这对于所有 n 都成立。

于是,正整数 1 必须且只能出现在其中一个数列中,正整数 2 必须且只能出现在其中一个数列中,以此类推,每一个新的正整数都必须且只能出现在其中一个数列中。

这种取整函数的处理技巧也可以用到上一个问题里:对上一个问题里的数头尾配对,你会发现每一对数之和都是 b – 1 。

12

问题:

把 10, 100, 1000, 10000, … 分别写成二进制数和五进制数:

原数列:10, 100, 1000, 10000, 10000, …

二进制:1010, 1100100, 1111101000, 10011100010000, …

五进制:20, 400, 13000, 310000, 11200000, …

你会发现,对于任意正整数 n > 1 ,后两个数列里恰好有一个数是 n 位数。这是为什么?

答案:

这是 Beatty-Rayleigh 定理的一个非常漂亮的直接推论。

10k 的二进制表达恰好有 [log210k] + 1 位,即 [k · log210] + 1 位。

10k 的五进制表达恰好有 [log510k] + 1 位,即 [k · log510] + 1 位。

我们只需要证明,数列 [1 · log210], [2 · log210], [3 · log210], … 和 [1 · log510], [2 · log510], [3 · log510], … 既无重复又无遗漏地包含了所有正整数。

注意到 log210 和 log510 是两个倒数和为 1 的无理数,用一下 Beatty-Rayleigh 定理就出来了。

“超级数学建模”(微信号supermodeling),每天学一点小知识,轻松了解各种思维,做个好玩的理性派。60万数学精英都在关注!

标签: #c语言n个数最小公倍数