zoukankan      html  css  js  c++  java
  • 1104-素数环

    描述

    输入正整数n,把整数1,2,3,…,n组成一个环,使得相邻两个整数之和为素数。输出时从整数1开始逆时针排列。同一个环应恰好输出一次。1<n≤16。

    输入

    输入正整数n,1<n≤16。

    输出

    输出素数环序列,从整数1开始逆时针排列。

    样例输入

    6

    样例输出

    1 4 3 2 5 6

    1 6 5 2 3 4

    #include <iostream>
    using namespace std;
    const int PRIME[] = {0, 0, 1, 1, 0, 1, 0, 1, 0, 0,
                         0, 1, 0, 1, 0, 0, 0, 1, 0, 1,
                         0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
                         0, 1};
    int isPrime(int a)
    {
        return PRIME[a];
    }
    void search(int *p, int index, int length)
    {
        int i,j,t;   
        if(index==length&&isPrime(p[0]+p[length-1]))
         {
             printf("%d", p[0]);
             for(i=1;i<length; i++)
                 printf(" %d",p[i]);
             printf("
    ");
             return;
         }  
        for(i=index;i<length;i++)
         {
             t = p[i];
             for(j=i;j>index;j--)
                 p[j]=p[j-1];
             p[index]=t;
             if(isPrime(p[index]+p[index-1]))
             {
                 search(p,index+1,length);
             }
             t = p[index];
             for(j=index;j<i;j++)
                 p[j]=p[j+1];
             p[i]=t;
         }
     }
    void searchPrimeRing(int a)
    {
        int list[16],i;    
        for(i=0;i<a;i++)
             list[i]=i+1;   
        search(list,1,a);
    } 
    int main()
    {
        int n,i = 1;
        scanf("%d",&n);
        searchPrimeRing(n);
        i++;
        return 0;
    } 
    

      

  • 相关阅读:
    [BZOJ2969] 矩形粉刷
    数字 (number)
    字符串(String)
    小HY的四元组
    最大公约数(Max Gcd)
    [洛谷P2102] 地砖铺设
    Python OS模块(内置模块)
    json解析神器--jsonpath
    kafka 优势+应用场景
    Python之异常处理
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436918.html
Copyright © 2011-2022 走看看