标签:
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 32717 Accepted Submission(s):
14482

#include<stdio.h>
#include<string.h>
#define MAX 21
int a[MAX];
int vis[MAX];
int prime[50];
int k;
void biao()
{
int i,j;
for(i=0;i<=50;i++)
prime[i]=1;
for(i=2;i<=50;i++)
{
if(prime[i])
{
for(j=2*i;j<=50;j+=i)
{
prime[j]=0;
}
}
}
prime[1]=0;
}
void dfs(int cur,int n)
{
int i,j;
if(cur==n+1&&prime[1+a[n]])
{
for(i=1;i<=n;i++)
{
if(i==1)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
printf("\n");
}
else
{
for(i=2;i<=n;i++)
{
if(!vis[i]&&prime[i+a[cur-1]])
{
a[cur]=i;
vis[i]=1;
dfs(cur+1,n);
vis[i]=0;
}
}
}
}
int main()
{
int n,m,j,i,t;
biao();
k=1;
while(scanf("%d",&n)!=EOF)
{
memset(a,0,sizeof(a));
memset(vis,0,sizeof(vis));
a[1]=1;vis[1]=1;
printf("Case %d:\n",k++);
if(n==1)
printf("1\n");
else
dfs(2,n);
printf("\n");
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/tonghao/p/4564454.html