1036 python写法
python库函数
本来是想学习dfs,但是发现了子序列这个库,本以为这个库只能用于写出字符串的子序列,结果发现列表类型也可以使用,太折磨了。
import itertools
def sushu(a):
for i in range(2,a):
if(a%i==0):
return False
return True
#输入一位矩阵
n,m=map(int,input().split(' '))
x=[str(i) for i in input().split()]
result=0
li=list(itertools.combinations(x,m))
for i in range(len(li)):
if(sushu(sum(map(int,list(li[i]))))):
result+=1
print(result)
dfs递归
global ans
ans=0
def dfs(m,sum,startx):
'''
/最重要的递归
//m代表现在选择了多少个数
//sum表示当前的和
//startx表示升序排列,以免算重
'''
if(m==k):#如果选完了的话
if(sushu(sum)):
ans+=1
return
for i in range(startx,n):
#递归
#步数要加一,和也要加1
#升序起始值要变成i+1,以免算重
dfs(m+1,sum+x[i],i+1)
return
dfs(0,0,0)