题解 | kotori和素因子

import sys

n = int(input())
a = list(map(int, input().split()))
yinzi = []
def isprime(v):
    for i in range(2, v):
        if v % i == 0:
            return False
    return True

for i in range(n):
    v = a[i]
    br = []
    for j in range(1, v + 1):
        if v%j == 0 and j != 1 and isprime(j):
            br.append(j)
    yinzi.append(br)

res = 1000*2000
array = []
s = []
def dfs(idx):
    global res, s
    br = yinzi[idx]
    for v in br:
        if v in s: continue# used
        s.append(v)
        # print(s)
        if len(s) == n:
            if res > sum(s):
                res = sum(s)
            #     print(s)
            s.remove(v)
            continue
        dfs(idx + 1)
        s.remove(v)
dfs(0)
if res == 1000*2000:
    res = -1
print(res)

dfs 加上素数判断

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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