1358 - 素数环

题目描述

从 1 \sim n1∼n 这 nn 个数,摆成一个环,要求相邻的两个数的和是素数,按照由小到大请输出所有可能的摆放形式。

比如:n = 4n=4,输出形式如下;

1:1 2 3 4
2:1 4 3 2
3:2 1 4 3
4:2 3 4 1
5:3 2 1 4
6:3 4 1 2
7:4 1 2 3
8:4 3 2 1
total:8

比如:n = 6n=6,输出形式如下;

1:1 4 3 2 5 6
2:1 6 5 2 3 4
3:2 3 4 1 6 5
4:2 5 6 1 4 3
5:3 2 5 6 1 4
6:3 4 1 6 5 2
7:4 1 6 5 2 3
8:4 3 2 5 6 1
9:5 2 3 4 1 6
10:5 6 1 4 3 2
11:6 1 4 3 2 5
12:6 5 2 3 4 1
total:12

输入

一个整数 nn ;(2 \le n \le 102≤n≤10)

输出

前若干行,每行输出一个素数环的解,最后一行,输出解的总数。

样例

输入

4

输出

1:1 2 3 4
2:1 4 3 2
3:2 1 4 3
4:2 3 4 1
5:3 2 1 4
6:3 4 1 2
7:4 1 2 3
8:4 3 2 1
total:8

来源

回溯

#include<bits/stdc++.h>
using namespace std;
const int inf=11;
int n,use[inf],f=0;
bool vis[inf];
void print(){
	printf("%d:",++f);
	for(int i=1;i<=n;i++){
		printf("%d ",use[i]); 
	}
	printf("\n");
}
bool prime(int n){
	if(n<=1){
		return false;
	}
	for(int i=2;i*i<=n;i++){
		if(n%i==0){
			return false;
		}
	}
	return true;
}
void dfs(int k){
	if(k==n){
		bool flag=false;
		for(int i=1;i<n;i++){
			if(!prime(use[i]+use[i+1])){
				flag=true;
			}
		}
		if(!flag&&prime(use[1]+use[n])){
			print();
		}
	}
	for(int i=1;i<=n;i++){
		if(!vis[i]){
			vis[i]=true;
			use[k+1]=i;
			dfs(k+1);
			vis[i]=false;
		}
	}
}
int main(){
    cin>>n;
    dfs(0);
    printf("total:%d",f);
    return 0;
}

相关推荐

  1. 1358 - 素数

    2024-06-12 15:20:04       28 阅读
  2. leetcode解题思路分析(一百五十五)1352 - 1358

    2024-06-12 15:20:04       36 阅读
  3. 统计素数并求和

    2024-06-12 15:20:04       51 阅读
  4. 判断质数(素数):

    2024-06-12 15:20:04       44 阅读
  5. 189: 素数判定(python)

    2024-06-12 15:20:04       38 阅读
  6. 回文素数

    2024-06-12 15:20:04       42 阅读
  7. 素数问题 python

    2024-06-12 15:20:04       38 阅读
  8. 回文素数----函数

    2024-06-12 15:20:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 15:20:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 15:20:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 15:20:04       78 阅读
  4. Python语言-面向对象

    2024-06-12 15:20:04       88 阅读

热门阅读

  1. rk3576作为2024行业新秀,那么rk3588和rk3399

    2024-06-12 15:20:04       24 阅读
  2. Hadoop之HDFS分布式文件系统

    2024-06-12 15:20:04       28 阅读
  3. DevOps的原理及应用详解(三)

    2024-06-12 15:20:04       39 阅读
  4. 【日常记录】Jackson如何支持org.joda.time.DateTime

    2024-06-12 15:20:04       20 阅读
  5. 力扣-2225

    2024-06-12 15:20:04       22 阅读
  6. Lua 基础 05 时间

    2024-06-12 15:20:04       29 阅读
  7. leetcode刷题记录38-16. 最接近的三数之和

    2024-06-12 15:20:04       25 阅读
  8. 高低温测试发现文件被篡改

    2024-06-12 15:20:04       32 阅读
  9. 架构设计-如何安全地传输密码

    2024-06-12 15:20:04       25 阅读
  10. 【名词解释】Unity中的Scrollbar组件及其使用示例

    2024-06-12 15:20:04       36 阅读
  11. 大数据的定义特点与应用场景?

    2024-06-12 15:20:04       33 阅读
  12. 网络数据库后端面试题

    2024-06-12 15:20:04       29 阅读
  13. c++:回顾(一)

    2024-06-12 15:20:04       34 阅读
  14. 杂项——编码器控制小车走固定距离(stm32)

    2024-06-12 15:20:04       36 阅读
  15. 2833.距离原点最远的点

    2024-06-12 15:20:04       33 阅读