题解 | 素数伴侣

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
昨天 12:17
已编辑
商丘师范学院 Java
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:55
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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