站外题求助
  • 板块学术版
  • 楼主waters__god
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/6/10 15:54
  • 上次更新2023/10/23 13:29:04
查看原帖
站外题求助
549383
waters__god楼主2023/6/10 15:54

题目描述: 给定nn个整数aia_i,你需要求出有多少个从中选出kk个的方案,使得这个整数的和是质数。 两种方案被视为不同,当且仅当存在一个满足只在两种方案的一个中被选出。

输入: 第一行两个整数nn和kk,第二行nn个整数aia_i。

输出: 一行一个整数,表示从nn个整数中选出kk个数的和是质数的方案数。

wa code:

#include<bits/stdc++.h>
using namespace std;
int n,k,a[21],ans;
int pd(int x)
{
    for(int i=2;i<=sqrt(x);i++)
    if(x%i==0)
    return 0;
    return 1;
}
void dfs(int x,int sum)
{
    if(x==k+1 && pd(sum))
    {
        ans++;
        return ;
    }
    else
    {
        for(int i=x;i<=n;i++)
        dfs(x+1,sum+a[i]);
    }
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    dfs(1,0);
    cout<<ans;
    return 0;
}
2023/6/10 15:54
加载中...