用素数分拆偶数

本文详细介绍了如何计算不超过10000的正偶数n,将其拆分为两个不同素数之和的方法数,并通过两种解法进行了说明:一种是直接遍历打表,另一种则是利用二分法优化搜索过程。文中提供了具体实例和代码实现,旨在帮助读者理解偶数分解的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把一个偶数拆成两个不同素数的和,有几种拆法呢?
现在来考虑考虑这个问题,给你一个不超过10000的正的偶数n,
计算将该数拆成两个不同的素数之和的方法数,并输出。
如n=10,可以拆成3+7,只有这一种方法,因此输出1.
第一个解法:一万比较小,先打表,然后两个表一个个遍历,非常笨拙地方法。
      最后记得除以2,因为有重复的一遍。例如:10=3+7,10=7+3.多算了一遍。

def way(n):
    num=[]
    f=0
    for i in range(2,n+1):
        t=0
        for j in range(2,i):
            if i%j==0:
                t=1
                break
        if t==0:num.append(i)
    for k in num:
        for q in num:
            if k+q==n and k!=q:f+=1
    return f/2
print way(n)

第二个解法一样先打表,遍历第一个数,第二个数用二分法找。

转载于:https://www.cnblogs.com/webgavin/p/5307404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值