NYOJ 488(素数环)

简介: #include #include #include int a[21],visited[21],N; int is_prime(int k) { int i; for(i=2;i*i
 
#include<stdio.h>
#include<math.h>
#include<string.h>
int a[21],visited[21],N;
int is_prime(int k)
{
	int i;
	for(i=2;i*i<=k;i++)
		if(k%i==0) return 0;
	return 1;
}
void print(int a[])
{
	int i;
	for(i=1;i<=N-1;i++)
		printf("%d ",a[i]);
	printf("%d\n",a[N]);
}
void search(int m)
{
	int i;
	if(m==N+1)
	{
	 					if(is_prime(a[1]+a[N]))  print(a);
	 					else return ;
	}
	for(i=2;i<=N;i++)
	{
		if(visited[i]==0)
		{
			a[m]=i;
			visited[i]=1;
			if(is_prime(a[m]+a[m-1])) search(m+1);
			visited[i]=0;
		}
	}
}
int main()
{
	int k=1;
	a[1]=1;
	while(scanf("%d",&N),N)
	{	
		
		memset(visited,0,sizeof(visited));
		printf("Case %d:\n",k++);
		if(N==1) printf("1\n");
		else if(N>1&&N%2==1) printf("No Answer\n");
		else search(2);
	}
	return 0;
}
        




 
#include<stdio.h>
#include<string.h>
int a[20];
bool isp[40]={1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,1};
bool visit[20];
int m;
void dfs(int n)
{
	int i;
    if(n==m&&!(isp[a[m-1]+1]))
	{
	    for(i=0;i<n;i++)
			printf("%d ",a[i]);
		printf("\n");
	}
	else
	{
	   for(i=2;i<=m;i++)
	   {
	       if(!visit[i]&&!isp[i+a[n-1]])
		   {
		       a[n]=i;
			   visit[i]=1;
			   dfs(n+1);
			   visit[i]=0;
		   }
	   }
	}
}
int main()
{
	int count=1;
    while(~scanf("%d",&m)&&m)
	{
		
		  printf("Case %d:\n",count++);
		  if(m==1)
		  {
		  printf("1\n");
		  continue;
		  }
		 if(m%2)
		 {
			printf("No Answer\n"); 
			continue;
		 } 
		  a[0]=1;
		  dfs(1);
		  
	}
} 



                       

 

目录
相关文章
|
人工智能 算法
|
人工智能 测试技术
NYOJ&#160;79
拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意 的高度,但是以后每一发炮弹都不能高于等于前一发的高度。
960 0
|
人工智能
NYOJ 55
  懒省事的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 小明很想吃果子,正好果园果子熟了。在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。
955 0
NYOJ 86
  找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏。游戏规则为:在一堆球中,每个球上都有一个整数编号i(0
811 0
|
测试技术
NYOJ 523
  亡命逃窜 时间限制:1000 ms | 内存限制:65535 KB 难度:4   描述   从前有个叫hck的骑士,为了救我们美丽的公主,潜入魔王的老巢,够英雄吧。不过英雄不是这么好当的。
916 0
NYOJ 113
1 #include 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int pos=-1; 8 string s; 9 while(getline(cin,s)) 10 { 11 while((pos=s.
682 0
NYOJ 93
  汉诺塔(三) 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。
601 0