题目描述

因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

写一个程序来找出范围[a,b](5 <= a < b <= 100,000,00)( 一千万)间的所有回文质数;

输入输出格式

输入格式:

第 1 行: 二个整数 a 和 b .

输出格式:

输出一个回文质数的列表,一行一个。

今天闲来无事,看了一个判断回文质数的题目,就想着用java进行了实现。既然是判断是否是回文质数,那个该数字一定要即使回文又是质数。

在判断是否是回文时,百度和谷歌网上的代码大多数都是通过除10运算进行比较,这样非常消耗内存和性能,因此本文采用了将数字转化为字符串的方式,对字符串进行回文判断。这样可以节省大量的系统性能。代码如下:

private static booleanisPalindrome(intnum) {

String numString = num+"";intlow = 0;inthigh = numString.length()-1;while(low < high){

if(numString.charAt(low) != numString.charAt(high)){

return false;}

low++;high--;}

return true;}

在判断质数时,不在对偶数进行判断,这样可以节省一半的性能,代码如下:

private static booleanisPrimeNumber(intnum) {

if(num<2|| num %2==0){

return false;}

for(inti = 3;i < Math.sqrt(num);i+=2) {

if(num %i == 0){

return false;}

}

return true;}

完整代码如下:

packagecom.example.lib100;/*** Created by wangyajie on 18-2-28.*/public classmyClass {

public static voidmain(String [] args){

longstartTime = System.currentTimeMillis();for(inti = 2;i < 10000000;i++) {

if(isPalindrome(i)){

if(isPrimeNumber(i)){

System.out.print(i+" ");}

}

}

System.out.println("AccountTime: "+(System.currentTimeMillis()-startTime));}

private static booleanisPrimeNumber(intnum) {

if(num<2|| num %2==0){

return false;}

for(inti = 3;i < Math.sqrt(num);i+=2) {

if(num %i == 0){

return false;}

}

return true;}

private static booleanisPalindrome(intnum) {

String numString = num+"";intlow = 0;inthigh = numString.length()-1;while(low < high){

if(numString.charAt(low) != numString.charAt(high)){

return false;}

low++;high--;}

return true;}

}

总耗时333毫秒,本文在网上随便找了一个代码进行了比较,代码如下:

packagecom.example.lib100;/*** Created by wangyajie on 18-2-28.*/public classPrimeNumber {

public static voidmain(String[] args) {

//TODO Auto-generated method stublongstartTime = System.currentTimeMillis();System.out.println(System.currentTimeMillis());for(inti = 2;i < 10000000;i++){

if(isPrime(i)){

if(isPalindrome(i)){

System.out.print(i + " ");}

}

}

System.out.println("AccountTime: "+(System.currentTimeMillis()-startTime));}

public static booleanisPrime(intnum) { //判断是否为素数for(inti = 2;i <= Math.sqrt(num);i++)

if(num % i == 0)

return false;return true;}

static intreversal(intnum) { //反转原数intresult = 0;while(num != 0){

intlastDigit = num % 10;result = result * 10+ lastDigit;num = num / 10;}

returnresult;}

static booleanisPalindrome(intnum) { //判断是否为回文数returnnum == reversal(num);}

}

总耗时5423毫秒

因此通过耗时比较,将整形数据转化为字符串明显由于对除10操作。

java 回文素数_java实现回文质数相关推荐

  1. java编写回文素数_java编程 回文素数

    判断是否是素数这段代码是对的.请高手看看是哪里出问题了!~输入回文素数它都说是false....importjava.util.Scanner;publicclassHuiwen{publicstat ...

  2. java语言 回文判断_java判断回文字符串的几种方法

    java判断回文字符串几种简单的实现: 1.将字符串倒置后逐一比较,实现如下: public class HuiWenTest { /** * @SERLIN */ public static voi ...

  3. python123回文素数_平方回文素数

    问题描述: 素数的平方是回文,比如11*11=121. 求不超过1000的平方回文素数. 我的代码:import math def prime(m): count=0 for i in range(2 ...

  4. java合并excel文件_Java 合并Excel文档

    在日常使用Excel软件办公时,通常会产生很多文档.当我们需对其中的数据进行整理和统计时,对文档进行合并处理将能够大大提高操作效率.一般文档合并可分为两种情况:一是将同一个Excel文档内多张工作表的 ...

  5. java doc转图片_Java 将word文档转换为PNG、XPS、RTF等格式

    在日常办公中,Word是一种很好的文档排版工具.在Word创建好文档后, 我们常常需要将其保存为PDF.图片或其他格式.本文就将通过使用Java程序来演示如何将Word文档转换为PNG.XPS.RTF ...

  6. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  7. java word 颜色设置_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  8. java读取带格式word文档_Java读取word文档解决方案

    java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java ...

  9. java生成world文件_Java导出World文档(入门)

    第一步就是将World文档里面需要从数据库填充的部分用占位符替换 第二步:就是将此文档保存为Xml格式 第三步:将其放在resource目录下,并选中此文件,右键点击properties属性,将其编码 ...

最新文章

  1. java cell报错_有一个小小点问题,现在我想从eclipse上读取Excel表
  2. css学习笔记3--灵活的背景定位
  3. python 无序表查找
  4. blender, 创建多边形面片
  5. 购买7个球彩票(人输入or机输入)(python )
  6. 【数值分析】数值分析的微积分学基础
  7. html中a标签根据一个参数跳转不同的页面
  8. 设计模式----装饰模式(C++实现)
  9. 18.3 通过打印来调试
  10. ubuntu下配置安装PyQt4
  11. ubuntu安装公式编辑器mathtype, wine中文乱码,ubuntu中文字体
  12. Android composse 声明式UI,更简单的自定义
  13. 算法:什么是宠物收养所问题?
  14. Java模拟账户---关键字this
  15. 线上软测培训机构柠檬班与iTEST.AI平台赋能测试行业共同发展、共绽异彩
  16. DexExpress的mapcontrol根据经纬度在地图上打点 C#地图画点 地图标点
  17. 纯css position:sticky 实现表格首行和首列固定
  18. springsecurity 配置
  19. LinuxOracle R6安装oracle 11gR2详细步骤
  20. Ultra Mobile Paygo美国手机号教程

热门文章

  1. http://item.jd.com/1275996920.html
  2. 学生信息表 -通过选择年级和班级得到详细的学生信息名单
  3. linux设备驱动之PCIE驱动开发
  4. 【Python】int binary str 互转
  5. Python3.6读写串口操作
  6. 统计学常见分布、概念
  7. Activity、View、Window的理解一篇文章就够了
  8. Android音频框架笔记 - 上篇
  9. Ubuntu16.04编译Android5.1源码
  10. 对2016年android就业的一些看法