1036选数
#include <bits/stdc++.h>
using namespace std;
int n=0,k=0,ans=0;
int a[25];
bool panduan(int x)
{
for(int i=2;i<floor(sqrt(x));i++)
{
if(x%i==0) return false;
}
return true;//别忘了
}
void fun(int start,int count,int sum)//功能单元为从start开始往后选一个数,count记录了选的深度,sum记录和
{
if(count==k && panduan(sum))//递归深度限制为k
{
ans++;
}
for(int i=start;i<n;i++)
{
fun(i+1,count+1,sum+a[i]);
}
}
int main()
{
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
fun(0,0,0);
cout<<ans<<endl;
return 0;
}
这篇文章,是又一个故事的结束...
lazy's story is continuing.