比赛 暑假培训一 评测结果 AAAAA
题目名称 选数 最终得分 50
用户昵称 sezbz 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2008-07-17 11:09:29
显示代码纯文本
#include <stdio.h>
#include <math.h>

#define maxn 21

int ans,n,k,data[maxn];
FILE *f1,*f2;

int check(int x)
{
	int i;
	for (i=2;i<sqrt(x);i++)
	{
		if ((x % i)==0)
			return 0;
	}
	return 1;
}

void search(int now,int x,int y)
{
	int i;
	if (x>=k)
	{
		if (check(now))
			ans++;
		return;
	}
	for (i=y;i<n;i++)
	{
		search(now+data[i],x+1,i+1);
	}
}

void ini(void)
{
	int i;
	fscanf(f1,"%d%d",&n,&k);
	for (i=0;i<n;i++)
	{
		fscanf(f1,"%d",&data[i]);
	}
}

int main(void)
{
	f1=fopen("choose.in","r");
	f2=fopen("choose.out","w");
	ini();
	search(0,0,0);
	fprintf(f2,"%d",ans);
	fclose(f1);fclose(f2);
	return 0;
}