Pythontip挑战题 第42题:分拆素数和

题目描述:

把一个偶数拆成两个不同素数的和,有几种拆法呢? 现在来考虑考虑这个问题,给你一个不超过10000的正的偶数n, 计算将该数拆成两个不同的素数之和的方法数,并输出。 如n=10,可以拆成3+7,只有这一种方法,因此输出1

示例:
输入:n = 4
输出:0

思路:素数包括2,3,5,7,还有不能被2,3,5,7整除的数

n =10
List2=[]
numbers =0
#找到所有的素数
def primelist(n):
    List1 = []
    for i in range(2,n): #素数不可以等于1
        if ((i%2!=0)&(i%3!=0)&(i%5!=0)&(i%7!=0)) or i==2 or i==3 or i==5 or i==7:
            List1.append(i)
    return(List1)
List2 = primelist(n)
#print(List2)
#循环素数列表
for m in range(len(List2)):
    for j in range(m+1,len(List2)):
        #print(List2[m])
        #print(List2[j])
        if List2[m] + List2[j] == n:
            numbers += 1
print(numbers)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值