首页 > 其他分享 >素数环

素数环

时间:2023-03-07 20:25:01浏览次数:30  
标签:输出 int 样例 素数 bool 1001

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

输入

一个数n

输出

不确定行数,每行都为一种不相同的素数环的可能

样例输入

6

样例输出

1 4 3 2 5 6
1 6 5 2 3 4

woc好难啊

#include <bits/stdc++.h>
using namespace std;
int n,a[1001];
bool v[1001];
bool panduan(int x)
{
	if(x<2) return 0;
	int t=sqrt(x);
	for(int i=2;i<=t;i++)
	{
		if(x%i==0) return false;
	}
	return true;
}
void dfs(int now)//和k一样
{
	if(now==n+1)
	{
		if(panduan(a[1]+a[n])==true)
		{
			for(int i=1;i<=n;i++)
			{
				cout << a[i] << ' ';
			}
		}
		cout << "\n";
		return;
	}
	for(int i=2;i<=n;i++)
	{
		if(v[i]==false&&panduan(a[now-1]+i)==true)
		{
			v[i]=true;
			a[now]=i;
			dfs(now+1);
			v[i]=false;
			a[now]=0;
		}
	}
}
int main()
{
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		a[i]=i;
	}
	dfs(2);
	return 0;
}

标签:输出,int,样例,素数,bool,1001
From: https://www.cnblogs.com/momotrace/p/sushuhuan.html

相关文章

  • 【算法设计-枚举、分治】素数、约数、质因数分解
    目录1.素数判定2.素数筛选法3.质因数分解4.求一个数的约数5.求两个数的最大公约数(GCD)6.求两个数的最小公倍数(LCM)1.素数判定判定从2到sqrt(n)依次能否把n整除,......
  • 算法刷题-查找组成一个偶数最接近的两个素数-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • pat乙级1013数素数
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmain(){intnum[10000]={0};num[0]=2;intflag=0;intcount=0;inta,b......
  • 素数性质的总结
    素数的性质分类一、素数的性质1.任何大于一的数,要么是素数,要么可以分解为几个素数之积,且分解方式唯一。2.素数的个数有无限个。(欧几里得《几何原本》)3.若n为大于或等......
  • Java基础——(综合练习)买飞机票和找素数
    packagecom.zhao.test;importjava.util.Scanner;publicclassTest14{/*需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、......
  • PAT Basic 1007. 素数对猜想
    PATBasic1007.素数对猜想1.题目描述:让我们定义\(d_n\)为:\(d_n=p_{n+1}−p_n\),其中\(p_i\)是第\(i\)个素数。显然有\(d_1=1\),且对于\(n>1\)有\(d_n\)是偶数。“素数对......
  • Python实现素数筛选(欧式筛法)
    素数筛选之欧式筛法:用合数与素数乘法,素数与素数的乘法去筛将来的数,同时当这个数被更小的素数整除,就不必再用这个数去运算,保证每个合数只会被它的最小质因数筛去,因此每个数只......
  • 最快素数打表,比欧拉筛快一倍。
    1e7内比欧拉筛子快一倍,2e7持平,之后略慢不论N多大整体计算次数,都是欧拉筛子的1/3,求大神解答1e8之后为什么变慢思路:相较于欧拉筛考虑1-n所有数,这里基于孪生素数,只需要考虑......
  • 等差素数列
    等差素数列题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。2,3,5,7,11,13,...是素数序列。类似:7,37,67,97,127,157这样完全由素数组......
  • PAT-basic-1007 素数对猜想 java
    一、题目让我们定义dn为:dn=p(n+1)−p~n,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意......