博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ-488 素数环
阅读量:6038 次
发布时间:2019-06-20

本文共 2066 字,大约阅读时间需要 6 分钟。

 

素数环

时间限制:
1000 ms  |  内存限制:
65535 KB
难度:
2
 
描述

有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。

为了简便起见,我们规定每个素数环都从1开始。例如,下图就是6的一个素数环。

 
输入
有多组测试数据,每组输入一个n(0<n<20),n=0表示输入结束。
输出
每组第一行输出对应的Case序号,从1开始。
如果存在满足题意叙述的素数环,从小到大输出。
否则输出No Answer。
样例输入
6830
样例输出
Case 1:1 4 3 2 5 61 6 5 2 3 4Case 2:1 2 3 8 5 6 7 41 2 5 8 3 4 7 61 4 7 6 5 8 3 21 6 7 4 3 8 5 2Case 3:No Answer
1 /*  2    功能Function Description:     NYOJ-488 3    开发环境Environment:          DEV C++ 4.9.9.1 4    技术特点Technique: 5    版本Version: 6    作者Author:                   可笑痴狂 7    日期Date:                      20120815 8    备注Notes: 9    素数环:给定n,1~n组成一个素数环,相邻两个数的和为素数。10     首先偶数(2例外,但是本题不会出现两个数的和为2)不是素数,11     所以素数环里奇偶间隔。如果n是奇数,必定有两个奇数相邻的情况。12     所以当n为奇数时,输出“No Answer”。13     当n == 1时只1个数,算作自环,输出114     所有n为偶数的情况都能变成奇偶间隔的环-----所以都有结果。15 */16 #include
17 #include
18 19 int prime[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,01,1,1,0,1,1};20 int visit[21];21 int ring[21];22 23 /*24 void Is_prime()25 {26 int i,j;27 prime[0]=prime[1]=1;28 for(i=2;i<=6;++i)29 for(j=i*i;j<40;j+=i)30 prime[j]=1;31 }32 */33 void DFS(int k,int n)34 {35 int i;36 if(k==n+1&&prime[ring[n]+ring[1]]==0)37 {38 printf("1");39 for(i=2;i<=n;++i)40 printf(" %d",ring[i]);41 printf("\n");42 return;43 }44 for(i=2;i<=n;++i)45 {46 if(!visit[i]&&!prime[i+ring[k-1]])47 {48 visit[i]=1;49 ring[k]=i;50 DFS(k+1,n);51 visit[i]=0;52 }53 }54 }55 56 int main()57 {58 int T,n;59 T=1;60 // Is_prime();61 while(scanf("%d",&n),n)62 {63 printf("Case %d:\n",T++);64 if(n==1)65 {66 printf("1\n");67 continue;68 }69 if(n&1)70 {71 printf("No Answer\n");72 continue;73 }74 memset(visit,0,sizeof(visit));75 visit[1]=ring[1]=1;76 DFS(2,n);77 }78 return 0;79 }

 

 

转载地址:http://vwghx.baihongyu.com/

你可能感兴趣的文章
关于联合索引
查看>>
开源 java CMS - FreeCMS2.7 登录移动端管理中心
查看>>
Android FM模块学习之三 FM手动调频
查看>>
Python 设置系统默认编码以及其他编码问题大全
查看>>
Vbs脚本编程简明教程之十四
查看>>
如何UDP/TCP端口是否通了
查看>>
pxe实现系统的自动化安装
查看>>
Redis高可用技术解决方案总结
查看>>
Scale Out Owncloud 高可用(2)
查看>>
何为敏捷
查看>>
HA集群之四:Corosync+Pacemaker+DRBD实现HA Mysql
查看>>
服务器定义
查看>>
我的友情链接
查看>>
MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
查看>>
c# 入门 例子
查看>>
HP Designjet 800PS 日常维护
查看>>
rhel7使用fdisk分区时无法使用全部分区的解决办法
查看>>
Docker 清理命令
查看>>
利用NRPE外部构件监控远程主机
查看>>
使用模块化编译缩小 apk 体积
查看>>