49分求助
查看原帖
49分求助
758792
Sunshine_su楼主2023/11/2 21:02
#include<iostream>
using namespace std;
int b[25],cnt,n,k;
bool is_p(int n)
{
    if(n<2) return false;
    for(int i=2;i*i<=n;i++) if(n%i==0) return false;
    return true;
}
void dfs(int step,int last,int sum)
{
    if(step>k)
    {
        cnt+=is_p(sum);
        return ;
    }
    for(int i=last+1;i<=n;i++) dfs(step+1,i,sum+b[step]);
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++) cin>>b[i];
    dfs(1,0,0);
    cout<<cnt;
    return 0;
} 
2023/11/2 21:02
加载中...