HDU 1016

来源:互联网 发布:java bloomfilter原理 编辑:程序博客网 时间:2024/05/23 19:09

#include<stdio.h>#include<string.h>int n;int isp[45];int cir[22];int vis[22];void is_prime(){    int i,j;    for(i = 2;i <= 40;i ++)    {        for(j = 2;j <= i/2;j ++)            if(i%j==0)                isp[i] = 1;    }    return ;}void dfs(int cnt){    int i,j;    if(cnt == n && !isp[cir[0]+cir[n-1]])    {        for(j = 0;j < n-1;j ++)            printf("%d ",cir[j]);        printf("%d\n",cir[n-1]);    }    else    {        for(i = 2;i <= n;i ++)        {            if(!vis[i]&&!isp[i+cir[cnt-1]])            {                cir[cnt] = i;                vis[i] = 1;                dfs(cnt+1);                vis[i] = 0;            }        }    }}int main(){    int i,c = 0;    is_prime();    while(~scanf("%d",&n))    {        memset(vis,0,sizeof(vis));        c++;        printf("Case %d:\n",c);        for(i = 0;i < n;i ++)            cir[i] = i+1;        dfs(1);        printf("\n");    }    return 0;}


0 0
原创粉丝点击