1
3
我会尝试用一种不那么暴力的方法来解决这个问题。 先做一些思想实验。其他每个数字都有相同的因子2。对于剩下的8或9,您需要更多的因素。例如,你可以有一个系数3,对其中一些人来说很常见。然后是另一个因素,等等,例如:
所以现在以更系统的方式来做这个。考虑所有小于17的主要因素。尝试这些值的每个组合,并针对每个组合,尝试每个可能的偏移(但仅限于序列中至少出现2次的偏移)。看看哪一个会导致每个数字至少有一个合作伙伴。然后使用 Chinese remainder theorem . 实际上只有两个候选人:
以第一个数字为特征 X 满足这些限制:
(使用sage函数计算 crt )以及上面的镜像
特点是
哪个更大,所以2184_2200是第一个满足您要求的序列:
哪个 应该 在你的循环范围内。实际上,它应该足以循环到30030次,而素数的乘积则可以达到17次。所以,如果循环确实完成了,但是错过了这个序列,那么一定有错误,知道这个序列可能有助于调试它。 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |
Wadu Hek · 查找列表中唯一的重复项 2 年前 |
Crawford Patten · 如何获得整数列表的四分位数 2 年前 |
MoonGoose · 如何在python中围绕特殊字符创建空间? 2 年前 |
taha khamis · 在一个数字中组合元素的省道 2 年前 |
Soup · 比O(n)更快地找到阶乘n模m 2 年前 |
BigO · 单词积分游戏不断增加数字[关闭] 2 年前 |