• NYOJ488素数环


     

    素数环

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

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

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

     
    输入
    有多组测试数据,每组输入一个n(0<n<20),n=0表示输入结束。
    输出
    每组第一行输出对应的Case序号,从1开始。
    如果存在满足题意叙述的素数环,从小到大输出。
    否则输出No Answer。
    样例输入
    6
    8
    3
    0
    样例输出
    Case 1:
    1 4 3 2 5 6
    1 6 5 2 3 4
    Case 2:
    1 2 3 8 5 6 7 4
    1 2 5 8 3 4 7 6
    1 4 7 6 5 8 3 2
    1 6 7 4 3 8 5 2
    Case 3:
    No Answer
    
    View Code
     1  
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<string.h>
     5 int a[21],visited[21];
     6 int N;
     7 int isprime(int k)
     8 {
     9  
    10     for(int i=2;i*i<=k;i++)
    11       if(k%i==0)return 0;
    12     return 1;
    13 }
    14 void print(int a[])
    15 {
    16      int i;
    17      for(i=1;i<N;i++)
    18        printf("%d ",a[i]);
    19      printf("%d\n",a[N]);
    20 }
    21 void find(int k)
    22 {
    23      if(k==N+1)
    24      {
    25        if(isprime(a[1]+a[N])) print(a);
    26        else return ;
    27      }
    28      for(int i=2;i<=N;i++)
    29      {
    30         if(visited[i]==0)
    31         {
    32           visited[i]=1;
    33           a[k]=i;
    34           if(isprime(a[k]+a[k-1]))find(k+1);
    35           visited[i]=0;
    36         }
    37      }
    38 }
    39 int main()
    40 {
    41     int num=1;
    42     a[1]=1;
    43     while(scanf("%d",&N)&&N)
    44     { 
    45         memset(visited,0,sizeof(visited));
    46         printf("Case %d:\n",num++);
    47         if(N==1)  printf("1\n");
    48         else if(N&1)printf("No Answer\n");
    49         else find(2);
    50     }
    51     return 0;
    52 } 
    53         
  • 相关阅读:
    List循环删除不干净
    实验二白盒测试
    ArcGIS 计算面积
    ArcGIS 矢量叠加分析 面与面叠加 分析叠加面的属性特征
    Primitive篇(贴图)
    Cesium的tooltip(推荐)
    ArcGIS(批量)删除属性字段
    shp文件转kml方式
    Cesium绘制虚线 primitive entity
    cesium之流动线
  • 原文地址:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_2012_11_12_2.html
Copyright © 2020-2023  润新知