一道数学题的解法:两个相邻质数的(中间间隔一个数,如5和7,17和19),他们的和一定能够被6整除

见到这样一道数学题:两个相邻质数的(中间间隔一个数,如5和7,17和19),他们的和一定能够被6整除。

据说这是微软的一道数学题,今天偶然看到了,被我解了,很高兴阿。

解法如下,
设置P1, P2为质数,且P2=P1+2,求 (P1+P2) mod 6 = 0

解:
设 P1=3k+a  其中 k为任意整数, a=1,2  ,(当k=0时,a=2)
则P2=P1+2 = 3k+a+2
因为 P2也是质数,且a=1,2
当a=1时,P2=3k+1+2=3(k+1),
与P2为质数冲突,所以a=2,
则 P1=3k+2, P2=3k+4
 
则P1+P2=3k+2 + 3k+4 = 6(k+1)
即,(P1+P2) mod 6 = 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常感谢您的提问。对于这个问题,我可以为您提供以下算法实现思路: 首先,我们需要构建一个包含所有素的列表,以便于后续判断相邻两个的和是否为素。可以使用筛法求素的方法构建该列表。 接下来,我们可以使用回溯算法来实现对素环的求解。具体实现思路如下: 1. 定义一个列表 visited,记录当前已经在素环中的字。初始状态下 visited 为空列表。 2. 定义一个 is_prime,判断一个是否为素。 3. 定义一个 dfs,实现对素环的搜索。dfs 函可以接受以下参: - current: 当前搜索到的位置,即已经在素环中的字个; - n: 素环中字的总个; - primes: 包含所有素的列表; - visited: 当前已经在素环中的字列表; - path: 当前搜索的路径。 4. 在 dfs 函中,判断当前搜索到的位置是否为 n。如果是,则说明找到了一个合法的素环,将其添加到解法列表中。 5. 否则,遍历所有未访问的字,对于每个字,判断其与之前的字之和是否为素,如果是则将该字添加到 visited 列表中,并递归调用 dfs 函搜索下一位字。递归调用结束后,将该字从 visited 列表中删除,以便于尝试其他未访问的字。 最终,搜索结束后,解法列表中记录的即为所有的素解法。具体实现细节可以根据需要进行调整和优化。希望这个算法实现思路对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值