题解 | #HJ28 素数伴侣#

素数伴侣

https://www.nowcoder.com/practice/b9eae162e02f4f928eac37d7699b352e

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

def match_odd(odds, flags, result, even):
    for i, odd in enumerate(odds):
        if check_prime(even+odd) and (flags[i]==False):
            flags[i] = True
            if (result[i]==False) or match_odd(odds, flags, result, result[i]):
                result[i] = even
                return True
    return False

while True:
    try:
        n = int(input())
        nums = [int(i) for i in input().split()]
        evens = [i for i in nums if i%2==0]
        odds = [i for i in nums if i%2!=0]
        if (not evens) or (not odds):
            print(0)
            continue
        count = 0
        result = [0] * len(odds)
        for even in evens:
            flags = [False] * len(odds)
            if match_odd(odds, flags, result, even):
                count += 1
        print(count)
    except:
        break
全部评论

相关推荐

03-25 16:22
南华大学 Java
不敢追175女神:你是打了上千个招呼吧?😂
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-18 14:29
牛客604067584号:感觉算法卷的人少很多,毕竟只有一部分bg还不错的硕士才会考虑算法,虽然hc不如后端,但是竞争真的少很多。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务