题解 | 素数伴侣

def  is_prime(num):
    if num <= 3:
        return num > 1
    for i in range(2, int(num ** 0.5) + 1):
        if num%i == 0:
            return False
    return True


def get_match(i):
    for j in range(n):
        if (array[i][j]==True) and (visit[j]==False):
            visit[j] = True
            if matchedNum[j] == -1 or get_match(matchedNum[j]):
                matchedNum[j] = i
                return True
    return False


while True:
    try:
        num = int(input())
        lst = list(map(int, input().split()))
        odds, evens = [], []
        for i in lst:
            if i % 2 == 0:
                evens.append(i)
            else:
                odds.append(i)
    
        m, n = len(odds), len(evens)

        array = [[-1 for i in range(n)] for j in range(m)]
        count = 0
        for i,x in enumerate(odds):
            for j,y in enumerate(evens):
                array[i][j] = is_prime(x+y)

        matchedNum = [-1 for i in range(n)]

        for i in range(m):
            visit = [False for i in range(n)]
            if get_match(i):
                count += 1
        print(count)

    except:
        break

全部评论

相关推荐

nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务