【NOIP2002】【Luogu1036】选数
原创
©著作权归作者所有:来自51CTO博客作者小哈里1139的原创作品,请联系作者获取转载授权,否则将追究法律责任
problem
solution
codes
#include<iostream>
using namespace std;
int n, k, a[30], ans;
int is_prime(int n){
if(n == 1 || n == 0)return 0;
if(n == 2)return 1;
for(int i = 2; i*i <= n; i++)
if(n % i == 0)return 0;
return 1;
}
void dfs(int pos,int pps,int sum){
if(!pos) { ans +=is_prime(sum);return ;}
for(pps; pps <= n; pps++)dfs(pos -1,pps +1, sum + a[pps]);
}
int main(){
cin>>n>>k;
for(int i = 1; i <= n; i++)cin>>a[i];
dfs(k, 1, 0);
cout<<ans;
return 0;
}