from math import *
import sys
sys.setrecursionlimit(10000)n,k=map(int,input().split())x=list(map(int,input().split()))vis=[0]*nsum2=0def ispr(n):if n<2:return 0if n in (2,3):return 1if n%2==0 or n%3==0:return 0for i in range(5,int(sqrt(n)+1),6):if n%i==0 or n%(i+2)==0:return 0return 1def dfs(step,m):global sum2if m==k:sum=0for i in range(n):if vis[i]:sum+=x[i]if ispr(sum): #注意层级sum2+=1returnelif step==n:returnvis[step]=0dfs(step+1,m)vis[step]=1dfs(step+1,m+1)vis[step]=0dfs(0,0) #别忘记启动dfs
print(sum2)
法2.combinations函数
import mathdef isd(n):for i in range(2,math.isqrt(n)+1):if n%i==0:return 0return 1n,k=map(int,input().split())l=list(map(int,input().split()))from itertools import combinationsl2=list(combinations(l,k))ans=0
for i in l2:if isd(sum(i)):ans+=1print(ans)