素数环
来源:互联网 发布:lol国服数据 编辑:程序博客网 时间:2024/05/29 12:32
题目:
将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。要求输出素数环。
输入
6
输出
143256165234
源代码:
public class SuShuHuan { static int N; //判断是否为素数 public boolean is_ss(int a,int b) { int c=a+b; if(c==1) return false; for(int i=2;i*i<=c;i++) { if(c%i==0) //不是素数 return false; } return true; } public void hs(int a[],int gs) { if(gs==N) //深搜了N次 { if(is_ss(a[0],a[N-1])) //最后一个数与第一个数相加为素数 for(int i=0;i<N;i++) System.out.print(a[i]); //输出 System.out.println(); return; } int tmp; for(int i=gs;i<N;i++) //为防止重复,从后一个数开始 { tmp=a[i];a[i]=a[gs];a[gs]=tmp; //深搜交换两数 if(is_ss(a[gs],a[gs-1])) //如果相加为素数 { hs(a,gs+1); //深搜 } tmp=a[i];a[i]=a[gs];a[gs]=tmp; //回溯 } } public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner cin=new Scanner(System.in); N=cin.nextInt(); int[] a=new int[N]; for(int i=0;i<N;i++) a[i]=i+1; //将N个数放入数组中 SuShuHuan ssh=new SuShuHuan(); ssh.hs(a,1); //从a[1]开始 }}
0 0
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- 素数环
- a的b次方的前N位数和后N位数
- ahalei_10
- 算法面试题解析:仅使用指定运算符,实现问号表达式的功能
- ajax入门学习(一)
- UVa 11134 Fabled Rooks
- 素数环
- grep 命令
- A tutorial on Principal Components Analysis - 主成分分析(PCA)教程
- 集合概述
- org.hibernate.exception.ConstraintViolationException: could not execute statment 异常解决
- 9
- Linux 文件类型与扩展名
- 根据第xx天推算日期
- Java 基础