1 条题解
-
0
C :
#include<stdio.h> #include<math.h> //20928: 选数 int tes=0; int test(int n)//验证质数,是则返回1 { int i,ans=1; switch(n) { case 1: case 4:ans=0;break; } for(i=2;i<n;i++) { if(n%i==0) { ans=0; break; } } return ans; } int f(int k0,int k,int n,int x[20],int he0,int i1,int he1) { int sum1=0,i; he1=he0; //n--; { if(k==k0) { he0=0; //n++; } } if((k>=1)&&(i1<=n)) { for(i=i1;i<n;i++) { he0=he1; he0=he0+x[i]; sum1=f(k0,k-1,n,x,he0,i+1,he1)+sum1; } return sum1; } else sum1=test(he0); tes++; return sum1; } int main() { int x[20]; int k,n,i; int ans; scanf("%d%d",&n,&k); for(i=0;i<n;i++) { scanf("%d",&x[i]); } ans=f(k,k,n,x,0,0,0); printf("%d",ans); return 0; }
C++ :
#include<iostream> #include<cmath> #include<set> using namespace std; bool is_prime(int n) { if(n==1) return 0; if(n==2) return 1; for(int i=2;i<sqrt(n)+1;i++) if(n%i==0) return 0; return 1; } int num[25]; int main() { int n,d,a,b,c,i,j,k,l,m,o,p,q,s,r,t,u,v,x,y,z; int count; multiset <int> s1; while(cin>>n>>d) { for(i=0;i<n;i++) cin>>num[i]; if(d==1) { for(i=0;i<n;i++) s1.insert(num[i]); } if(d==2) { for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) s1.insert(num[i]+num[j]); } if(d==3) { for(i=0;i<n-2;i++) for(j=i+1;j<n-1;j++) for(k=j+1;k<n;k++) s1.insert(num[i]+num[j]+num[k]); } if(d==4) { for(i=0;i<n-3;i++) for(j=i+1;j<n-2;j++) for(k=j+1;k<n-1;k++) for(l=k+1;l<n;l++) s1.insert(num[i]+num[j]+num[k]+num[l]); } if(d==5) { for(i=0;i<n-4;i++) for(j=i+1;j<n-3;j++) for(k=j+1;k<n-2;k++) for(l=k+1;l<n-1;l++) for(m=l+1;m<n;m++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]); } if(d==6) { for(i=0;i<n-5;i++) for(j=i+1;j<n-4;j++) for(k=j+1;k<n-3;k++) for(l=k+1;l<n-2;l++) for(m=l+1;m<n-1;m++) for(o=m+1;o<n;o++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]); } if(d==7) { for(i=0;i<n-6;i++) for(j=i+1;j<n-5;j++) for(k=j+1;k<n-4;k++) for(l=k+1;l<n-3;l++) for(m=l+1;m<n-2;m++) for(o=m+1;o<n-1;o++) for(p=o+1;p<n;p++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]); } if(d==8) { for(i=0;i<n-7;i++) for(j=i+1;j<n-6;j++) for(k=j+1;k<n-5;k++) for(l=k+1;l<n-4;l++) for(m=l+1;m<n-3;m++) for(o=m+1;o<n-2;o++) for(p=o+1;p<n-1;p++) for(q=p+1;q<n;q++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+num[q]); } if(d==9) { for(i=0;i<n-8;i++) for(j=i+1;j<n-7;j++) for(k=j+1;k<n-6;k++) for(l=k+1;l<n-5;l++) for(m=l+1;m<n-4;m++) for(o=m+1;o<n-3;o++) for(p=o+1;p<n-2;p++) for(q=p+1;q<n-1;q++) for(r=q+1;r<n;r++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+num[q]+num[r]); } if(d==10) { for(i=0;i<n-9;i++) for(j=i+1;j<n-8;j++) for(k=j+1;k<n-7;k++) for(l=k+1;l<n-6;l++) for(m=l+1;m<n-5;m++) for(o=m+1;o<n-4;o++) for(p=o+1;p<n-3;p++) for(q=p+1;q<n-2;q++) for(r=q+1;r<n-1;r++) for(s=r+1;s<n;s++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+num[q]+num[r]+num[s]); } if(d==11) { for(i=0;i<n-10;i++) for(j=i+1;j<n-9;j++) for(k=j+1;k<n-8;k++) for(l=k+1;l<n-7;l++) for(m=l+1;m<n-6;m++) for(o=m+1;o<n-5;o++) for(p=o+1;p<n-4;p++) for(q=p+1;q<n-3;q++) for(r=q+1;r<n-2;r++) for(s=r+1;s<n-1;s++) for(t=s+1;t<n;t++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+num[q]+num[r]+num[s]+num[t]); } if(d==12) { for(i=0;i<n-11;i++) for(j=i+1;j<n-10;j++) for(k=j+1;k<n-9;k++) for(l=k+1;l<n-8;l++) for(m=l+1;m<n-7;m++) for(o=m+1;o<n-6;o++) for(p=o+1;p<n-5;p++) for(q=p+1;q<n-4;q++) for(r=q+1;r<n-3;r++) for(s=r+1;s<n-2;s++) for(t=s+1;t<n-1;t++) for(u=t+1;u<n;u++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+num[q]+num[r]+num[s]+num[t]+num[u]); } if(d==13) { for(i=0;i<n-12;i++) for(j=i+1;j<n-11;j++) for(k=j+1;k<n-10;k++) for(l=k+1;l<n-9;l++) for(m=l+1;m<n-8;m++) for(o=m+1;o<n-7;o++) for(p=o+1;p<n-6;p++) for(q=p+1;q<n-5;q++) for(r=q+1;r<n-4;r++) for(s=r+1;s<n-3;s++) for(t=s+1;t<n-2;t++) for(u=t+1;u<n-1;u++) for(v=u+1;v<n;v++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]); } if(d==14) { for(i=0;i<n-13;i++) for(j=i+1;j<n-12;j++) for(k=j+1;k<n-11;k++) for(l=k+1;l<n-10;l++) for(m=l+1;m<n-9;m++) for(o=m+1;o<n-8;o++) for(p=o+1;p<n-7;p++) for(q=p+1;q<n-6;q++) for(r=q+1;r<n-5;r++) for(s=r+1;s<n-4;s++) for(t=s+1;t<n-3;t++) for(u=t+1;u<n-2;u++) for(v=u+1;v<n-1;v++) for(x=v+1;x<n;x++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]); } if(d==15) { for(i=0;i<n-14;i++) for(j=i+1;j<n-13;j++) for(k=j+1;k<n-12;k++) for(l=k+1;l<n-11;l++) for(m=l+1;m<n-10;m++) for(o=m+1;o<n-9;o++) for(p=o+1;p<n-8;p++) for(q=p+1;q<n-7;q++) for(r=q+1;r<n-6;r++) for(s=r+1;s<n-5;s++) for(t=s+1;t<n-4;t++) for(u=t+1;u<n-3;u++) for(v=u+1;v<n-2;v++) for(x=v+1;x<n-1;x++) for(y=x+1;y<n;y++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]+num[y]); } if(d==16) { for(i=0;i<n-15;i++) for(j=i+1;j<n-14;j++) for(k=j+1;k<n-13;k++) for(l=k+1;l<n-12;l++) for(m=l+1;m<n-11;m++) for(o=m+1;o<n-10;o++) for(p=o+1;p<n-9;p++) for(q=p+1;q<n-8;q++) for(r=q+1;r<n-7;r++) for(s=r+1;s<n-6;s++) for(t=s+1;t<n-5;t++) for(u=t+1;u<n-4;u++) for(v=u+1;v<n-3;v++) for(x=v+1;x<n-2;x++) for(y=x+1;y<n-1;y++) for(z=y+1;z<n;z++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]+num[y]+num[z]); } if(d==17) { for(i=0;i<n-16;i++) for(j=i+1;j<n-15;j++) for(k=j+1;k<n-14;k++) for(l=k+1;l<n-13;l++) for(m=l+1;m<n-12;m++) for(o=m+1;o<n-11;o++) for(p=o+1;p<n-10;p++) for(q=p+1;q<n-9;q++) for(r=q+1;r<n-8;r++) for(s=r+1;s<n-7;s++) for(t=s+1;t<n-6;t++) for(u=t+1;u<n-5;u++) for(v=u+1;v<n-4;v++) for(x=v+1;x<n-3;x++) for(y=x+1;y<n-2;y++) for(z=y+1;z<n-1;z++) for(a=z+1;a<n;a++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]+num[y]+num[z]+num[a]); } if(d==18) { for(i=0;i<n-17;i++) for(j=i+1;j<n-16;j++) for(k=j+1;k<n-15;k++) for(l=k+1;l<n-14;l++) for(m=l+1;m<n-13;m++) for(o=m+1;o<n-12;o++) for(p=o+1;p<n-11;p++) for(q=p+1;q<n-10;q++) for(r=q+1;r<n-9;r++) for(s=r+1;s<n-8;s++) for(t=s+1;t<n-7;t++) for(u=t+1;u<n-6;u++) for(v=u+1;v<n-5;v++) for(x=v+1;x<n-4;x++) for(y=x+1;y<n-3;y++) for(z=y+1;z<n-2;z++) for(a=z+1;a<n-1;a++) for(b=a+1;b<n;b++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]+num[y]+num[z]+num[a]+num[b]); } if(d==19) { for(i=0;i<n-18;i++) for(j=i+1;j<n-17;j++) for(k=j+1;k<n-16;k++) for(l=k+1;l<n-15;l++) for(m=l+1;m<n-14;m++) for(o=m+1;o<n-13;o++) for(p=o+1;p<n-12;p++) for(q=p+1;q<n-11;q++) for(r=q+1;r<n-10;r++) for(s=r+1;s<n-9;s++) for(t=s+1;t<n-8;t++) for(u=t+1;u<n-7;u++) for(v=u+1;v<n-6;v++) for(x=v+1;x<n-5;x++) for(y=x+1;y<n-4;y++) for(z=y+1;z<n-3;z++) for(a=z+1;a<n-2;a++) for(b=a+1;b<n-1;b++) for(c=b+1;c<n;c++) s1.insert(num[i]+num[j]+num[k]+num[l]+num[m]+num[o]+num[p]+ num[q]+num[r]+num[s]+num[t]+num[u]+num[v]+num[x]+num[y]+num[z]+num[a]+num[b]+num[c]); } multiset<int>::iterator it; for(it=s1.begin(),count=0;it!=s1.end();it++) { if(is_prime(*it)) count++; } cout<<count<<endl; s1.clear(); } return 0; }
Pascal :
var i,j,k,n,m,x,y,f,t,ans:longint; a,b:array[0..100000] of longint; begin readln(n,k); ans:=0; for i:=1 to n do read(a[i]); while b[n+1]<>1 do begin f:=0;y:=0; for i:=1 to n+1 do if b[i]=0 then break else b[i]:=0; b[i]:=1; for i:=1 to n do if b[i]=1 then inc(y); if y=k then begin for i:=1 to n do if b[i]=1 then f:=f+a[i]; for i:=2 to trunc(sqrt(f)) do if f mod i=0 then begin f:=-1; break; end; if (f>-1)and(f<>1) then inc(ans); end; end; writeln(ans); end.
Java :
import java.util.*; public class Main { static int ans=0; static Scanner in=new Scanner(System.in); static int n=in.nextInt(); static int k=in.nextInt(); static int a[]=new int[n+2]; public static void main(String[] args) { // TODO Auto-generated method stub for(int i=0;i<n;i++) { a[i]=in.nextInt(); } dfs(0,k,0); System.out.println(ans); } static int c=0; private static void dfs(int sum,int choo,int now) { if(n-now<choo)return; if(choo==0){ if(is_prime(sum)==1){ ans++; } return ; } dfs(sum+a[now],choo-1,now+1); dfs(sum,choo,now+1); } private static int is_prime(int sum) { // TODO Auto-generated method stub if(sum==1)return 0; for(int i=2;i*i<=sum;i++) if(sum%i==0) return 0; return 1; } }
- 1
信息
- ID
- 215
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者