|
- #include <iostream>
- using namespace std;
- const int mm=22;
- int a[mm],aa[mm];
- int n,k,s,ss;
- int p[10000];
- int bb[10000];
- void getp()
- {
- int i,j;
- for ( i=2; i<=9999; i++)
- for ( j=i; i*j<=9999; j++) bb[i*j]=1;
- j=1;
- for (int i=2; i<=9999; i++) if (!bb[i]) p[j++]=i;
- ///for (i=1;i<=j;i++) cout<<p[i]<<' ';
- }
- bool isprime(int x)
- {
- int i=1;
- bool b=1;
- if (x<=1) b=0;
- else while (p[i]*p[i]<=x && b)
- if (x%p[i]==0) b=0;
- else i++;
- return b;
- }
- void cmn(int i)
- {
- int j,t;
- if (i>k)
- {
- for (s=0,j=1; j<=k; j++) s+=aa[a[j]];
- if (isprime(s)) ss++;
- }
- else for (t=a[i-1]+1; t<=n; t++)
- {
- a[i]=t;
- cmn(i+1);
- }
- }
- int main()
- {
- getp();
- cin>>n>>k;
- for (int i=1; i<=n; i++) cin>>aa[i];
- cmn(1);
- cout<<ss;
- return 0;
- }
复制代码 |
|