33分,求调
查看原帖
33分,求调
1226994
souga楼主2024/10/20 19:55
#include<bits/stdc++.h>
using namespace std;
int n,k,ans,a[25];
bool check(int x)
{
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0)
        {
            return false;
        }
    }
    return true;
}
void DFS(int step,int cnt)
{
    if(step==k)
    {
        if(check(cnt))
            ans++;
        return ;
    }
    for(int i=step;i<=n;i++)
    {
        DFS(step+1,cnt+a[i]);
    }
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
    	scanf("%d",&a[i]);
    }
    DFS(1,0);
    cout<<ans;
    return 0;
}
2024/10/20 19:55
加载中...