分拆素数和

描述:
把一个偶数拆成两个不同素数的和,有几种拆法呢?
现在来考虑考虑这个问题,给你一个不超过10000的正的偶数n,
计算将该数拆成两个不同的素数之和的方法数,并输出。

如n=10,可以拆成3+7,只有这一种方法,因此输出1.

from __future__ import print_function
import math

n=12

def is_prime(n):
    ret = True
    if n > 3:
        for index in range(2,int(math.sqrt(n))+1):
            # print("prime")
            # print(index)
            # print("prime")
            if n % index == 0:
                ret = False
                break
                # print("False")
            else:
                ret = True
                # print("True")
    else:
        if n == 1:
            ret = False
            # print('False')
        else:
            ret = True
            # print('True')
    return ret


def split_num(n):
    count = 0
    middle = int(math.ceil(n / 2.0))
    for index in range(1,middle):
        # print(index)
        if is_prime(index) and is_prime(n - index):
            # print(index)
            count += 1
    return count

print(split_num(n),end='')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值