P1036 [NOIP2002 普及组] 选数

#include <bits/stdc++.h>
#define ff(i) for (int i=1;i<=n;i++)
#define f(x,y) for (int y=x+1;y<=n;y++)
using namespace std;
bool zs(int x)
{
	for (int i=2;i<=sqrt(x);i++)
	   if (x%i==0)
	     return 0;
	return 1;
}
int n,x,a[25],b[95000001]={0},mx=-1,c=0;
int main()
{
	cin>>n>>x;
	for (int i=1;i<=n;i++)
	   cin>>a[i];
	if (x==1)
	{
		ff(i)
		{
			if (zs(a[i]))
		      b[a[i]]++;
		    if (a[i]>mx)
		      mx=a[i];
		}
	}
	if (x==2)
	{
		ff(i)
		{
			f(i,j)
			{
				int m=a[i]+a[j];
				if (zs(m))
		          b[m]++;
		        if (m>mx)
		          mx=m;
			}
		}
	}
	if (x==3)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
				    int m=a[i]+a[j]+a[k];
		            if (zs(m))
		              b[m]++;
		            if (m>mx)
		              mx=m;
			    }
		    }
	    }
	}
	if (x==4)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		int m=a[i]+a[j]+a[k]+a[l];
		                if (zs(m))
		                  b[m]++;
		                if (m>mx)
		                  mx=m;
					}
			    }
		    }
	    }
	}
	if (x==5)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    		    int m=a[i]+a[j]+a[k]+a[l]+a[ii];
		                    if (zs(m))
		                      b[m]++;
		                    if (m>mx)
		                      mx=m;
		                }
					}
			    }
		    }
	    }
	}
	if (x==6)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj];
		                        if (zs(m))
		                          b[m]++;
		                        if (m>mx)
		                          mx=m;
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==7)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk];
		                            if (zs(m))
		                              b[m]++;
		                            if (m>mx)
		                              mx=m;
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==8)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll];
		                                if (zs(m))
		                                  b[m]++;
		                                if (m>mx)
		                                  mx=m;
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==9)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm];
		                                        if (zs(m))
		                                          b[m]++;
		                                        if (m>mx)
		                                          mx=m;
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==10)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn];
		                                            if (zs(m))
		                                              b[m]++;
		                                            if (m>mx)
		                                              mx=m;
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==11)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo];
		                                                if (zs(m))
		                                                  b[m]++;
		                                                if (m>mx)
		                                                  mx=m;
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==12)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp];
		                                                    if (zs(m))
		                                                      b[m]++;
		                                                    if (m>mx)
		                                                      mx=m;
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==13)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq];
		                                                        if (zs(m))
		                                                          b[m]++;
		                                                        if (m>mx)
		                                                          mx=m;
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==14)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr];
		                                                            if (zs(m))
		                                                              b[m]++;
		                                                            if (m>mx)
		                                                              mx=m;
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==15)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													f(rr,ss)
			    													{
			    														int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr]+a[ss];
		                                                                if (zs(m))
		                                                                  b[m]++;
		                                                                if (m>mx)
		                                                                  mx=m;
																    }
															    }
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==16)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													f(rr,ss)
			    													{
			    														f(ss,tt)
			    														{
			    															int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr]+a[ss]+a[tt];
		                                                                    if (zs(m))
		                                                                      b[m]++;
		                                                                    if (m>mx)
		                                                                      mx=m;
																		}	
																	}	
																}	
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==17)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													f(rr,ss)
			    													{
			    														f(ss,tt)
			    														{
			    															f(tt,uu)
			    															{
			    																int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr]+a[ss]+a[tt]+a[uu];
		                                                                        if (zs(m))
		                                                                          b[m]++;
		                                                                        if (m>mx)
		                                                                          mx=m;
																			}
																		}	
																	}	
																}	
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==18)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													f(rr,ss)
			    													{
			    														f(ss,tt)
			    														{
			    															f(tt,uu)
			    															{
			    																f(uu,vv)
			    																{
			    																	int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr]+a[ss]+a[tt]+a[uu]+a[vv];
		                                                                            if (zs(m))
		                                                                              b[m]++;
		                                                                            if (m>mx)
		                                                                              mx=m;
																				}
																			}
																		}	
																	}	
																}	
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	if (x==19)
	{
		ff(i)
	    {
		    f(i,j)
		    {
			    f(j,k)
			    {
			    	f(k,l)
			    	{
			    		f(l,ii)
			    		{
			    			f(ii,jj)
			    			{
			    				f(jj,kk)
			    				{
			    					f(kk,ll)
			    					{
			    						{
			    							f(ll,mm)
			    							{
			    								f(mm,nn)
			    								{
			    									f(nn,oo)
			    									{
			    										f(oo,pp)
			    										{
			    											f(pp,qq)
			    											{
			    												f(qq,rr)
			    												{
			    													f(rr,ss)
			    													{
			    														f(ss,tt)
			    														{
			    															f(tt,uu)
			    															{
			    																f(uu,vv)
			    																{
			    																	f(vv,ww)
			    																	{
			    																		int m=a[i]+a[j]+a[k]+a[l]+a[ii]+a[jj]+a[kk]+a[ll]+a[mm]+a[nn]+a[oo]+a[pp]+a[qq]+a[rr]+a[ss]+a[tt]+a[uu]+a[vv]+a[ww];
		                                                                                if (zs(m))
		                                                                                  b[m]++;
		                                                                                if (m>mx)
		                                                                                  mx=m;
																					}
																				}
																			}
																		}	
																	}	
																}	
															}
														}
													}
												}
											}
										}
									}
								}
							}
		                }
					}
			    }
		    }
	    }
	}
	for (int i=1;i<=mx;i++)
	{
		if (b[i])
		  c+=b[i];
	}
	cout<<c;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿Eason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值