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