题目1459:Prime ring problem

来源:互联网 发布:淘宝客服幽默催拍话术 编辑:程序博客网 时间:2024/06/05 17:09
#include <stdio.h>  #include <string.h>  #include <math.h>  #include <iostream>  using namespace std ;  int x[20] , vis[20] , n ;  bool flag ;     void output(){      printf("%d" , 1) ;      for(int i = 2;i <= n;i++)          printf(" %d" , x[i]) ;      puts("") ;  }     bool Is_prime(int x){      for(int i = 2;i * i <= x;i++){          if(x%i == 0) return false ;      }      return true ;  }     void dfs(int t){      if(t == n + 1){          if(Is_prime(x[n] + 1)){              output() ;              return ;          }          else             return ;      }      for(int i = 2;i <= n;i++){          if(vis[i]) continue ;          if(Is_prime(x[t - 1] + i)){              x[t] = i ;              vis[i] = -1;              dfs(t + 1) ;              vis[i] = 0 ;          }      }  }           int main(){      int i , j , T = 1;      while(cin >> n){          x[1] = 1 ;          vis[1] = -1 ;          printf("Case %d:\n" , T++) ;          dfs(2) ;          puts("");      }      return 0 ;  }/**************************************************************    Problem: 1459    User: cust123    Language: C++    Result: Accepted    Time:430 ms    Memory:1520 kb****************************************************************/

0 0