震惊!某小学生竟一夜白头!(求大神指点,代码过不了哭死)
查看原帖
震惊!某小学生竟一夜白头!(求大神指点,代码过不了哭死)
691243
wuling_myz楼主2022/11/6 16:33
#include <cstdio>
#include <cmath>
using namespace std;

int n,k,sum=0,cnt=0;
int p[25];
bool book[25];
bool isPrime(int x)
{
    if(x==0||x==1) return false;
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0)
        {
            return false;
            return 0;
        }
    }
    return true;
}

void dfs(int u)
{
    if(isPrime(sum)&&u==k+1){
        cnt++;
        return;
    }
    for(int i=u;i<=n;i++)
    {
        if(book[i]) continue;
        sum+=p[i];
        book[i]=true;
        dfs(u+1);
        sum-=p[i];
        book[i]=false;
    }
}

int main()
{
    scanf("%d %d",&n,&k);
    for(int i = 1; i <= n; i++)
        scanf("%d",&p[i]);
    dfs(1);
    printf("%d",cnt);
    return 0;
}
2022/11/6 16:33
加载中...