Python 检查整数是否可以划分为素数分区?

Python 检查整数是否可以划分为素数分区?,python,Python,Python函数partition(),它接受整数m作为输入,如果m可以被划分为素数,则返回True,否则返回False 我尝试了这段代码,但这并不是所有的测试用例都有效!!例如,输入为“185”时,输出应为“False”,但此代码返回“True” 只有在循环结束后,才应确定某个数字为素数,而不应找到可以除以给定数字的数字: def primes(num): primelist=[] for i in range(2,num + 1): for p in rang

Python函数partition(),它接受整数m作为输入,如果m可以被划分为素数,则返回True,否则返回False

我尝试了这段代码,但这并不是所有的测试用例都有效!!例如,输入为“185”时,输出应为“False”,但此代码返回“True”


只有在循环结束后,才应确定某个数字为素数,而不应找到可以除以给定数字的数字:

def primes(num):
    primelist=[]
    for i in range(2,num + 1):
        for p in range(2,i):
            if (i % p) == 0:
                break
        else:
            primelist.append(i)
    return primelist
同样,您应该确定一个数字只有在循环完成后才能被两个素数分割:

def partition(num):
    primelist = primes(num)
    for x in primelist:
        y= num-x
        if y in primelist:
            return True
    return False

你确定
primes()
工作正常吗?我发现了故障,检查了@blhsing在此线程中建议的修复方法。使用
partition(3432)
的测试用例应返回True,在这种情况下,代码输出为false。我已更新了我的答案,以指出代码中存在的其他问题。
def partition(num):
    primelist = primes(num)
    for x in primelist:
        y= num-x
        if y in primelist:
            return True
    return False