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

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


我试过这个代码,但这不适用于所有测试用例!!例如 - 输入“185”,输出应为“False”,但此代码返回“True”


def partition(num):

    primelist = primes(num)

    for x in primelist:

        y= num-x

        if y in primelist:

            return True

        else:

            return False


def primes(num):

    primelist=[]

    for i in range(2,num + 1):

        for p in range(2,i):

            if (i % p) != 0:

                primelist.append(i)

    return primelist


print(partition(185))


叮当猫咪
浏览 135回答 1
1回答

www说

只有在循环结束后没有找到可以整除给定数字的数字时,您才应该确定一个数字是质数: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python