当前位置: 首页 > news >正文

「Java案例」利用方法求反素数

编写方法求求反素数

反素数(Emirp)是素数中一个有趣的变种,它本身是素数,反转后的数字也是素数,并且不能是回文数。

反素数基础实现

编写一个程序,要求编写方法public static boolean isPrime(int num)判断是否为素数;编写方法public static int reversal(int number)实现数字倒置;编写方法public static boolean isEmirp(int num)判断是否为反素数;编写方法public static void showEmirps(int count)显示前N个反素数。

# 源文件保存为“EmirpNumbers.java”
public class EmirpNumbers {// 判断是否为素数public static boolean isPrime(int num) {if (num <= 1) return false;if (num == 2) return true;if (num % 2 == 0) return false;for (int i = 3; i * i <= num; i += 2) {if (num % i == 0) return false;}return true;}// 数字倒置public static int reversal(int number) {int reversed = 0;while (number != 0) {reversed = reversed * 10 + number % 10;number /= 10;}return reversed;}// 判断是否为反素数public static boolean isEmirp(int num) {int reversed = reversal(num);return num != reversed && isPrime(num) && isPrime(reversed);}// 显示前N个反素数public static void showEmirps(int count) {int found = 0, num = 2;while (found < count) {if (isEmirp(num)) {System.out.printf("%6d", num);if (++found % 10 == 0) System.out.println();}num++;}}public static void main(String[] args) {System.out.println("前30个反素数:");showEmirps(30);}
}

运行结果

前30个反素数:13    17    31    37    71    73    79    97   107   113149   157   167   179   199   311   337   347   359   389701   709   733   739   743   751   761   769   907   937

代码解析

  • isPrime方法通过试除法判断素数,优化了偶数检查
  • reversal方法通过模运算和整数除法实现数字倒置
  • isEmirp方法组合前两个方法,并排除回文数情况
  • showEmirps方法从2开始逐个检查,直到找到足够数量的反素数

变体案例解析

双反素数

编写一个程序,要求编写方法public static boolean isPrime(int num)判断是否为素数;编写方法public static int reversal(int number)实现数字倒置;编写方法public static boolean isEmirp(int num)判断是否为反素数;编写方法public static void showDoubleEmirps(int count)寻找反转前后都是反素数的特殊数。

# 源文件保存为“EmirpNumbers.java”
public class EmirpNumbers {// 判断是否为素数public static boolean isPrime(int num) {if (num <= 1) return false;if (num == 2) return true;if (num % 2 == 0) return false;for (int i = 3; i * i <= num; i += 2) {if <
http://www.xdnf.cn/news/1156447.html

相关文章:

  • Ubuntu挂载和取消挂载
  • LP-MSPM0G3507学习--07定时器之二定时节拍
  • ZYNQ平台深度剖析:EMMC/FLASH/SD卡性能测试与创新实践
  • 从磁记录到数据中心:磁盘原理与服务器架构的完整技术链路
  • 两个数据表的故事:第 1 部分
  • Spring之事务使用指南
  • Java行为型模式---解释器模式
  • Openlayers 面试题及答案180道(121-140)
  • Node.js Express keep-alive 超时时间设置
  • @import导入css样式、scss变量用法、static目录
  • Java中List<int[]>()和List<int[]>[]的区别
  • PAT 1049 Counting Ones
  • 医学图像超分辨率重建深度学习模型开发报告
  • 如何用immich将苹果手机中的照片备份到指定文件夹
  • Word for mac使用宏
  • UniApp 常用UI库
  • 机器视觉---深度图像存储格式
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十五课——正弦波图像的FPGA实现
  • 数据存储方案h5py
  • 【C++基础】面试高频考点解析:extern “C“ 的链接陷阱与真题实战
  • MySQL详解三
  • MyBatis Plus高效开发指南
  • 第459场周赛
  • ESXi6.7硬件传感器红色警示信息
  • 详解Mysql解决深分页方案
  • Python类中方法种类与修饰符详解:从基础到实战
  • [simdjson] ondemand::value | object array
  • 低速信号设计之I3C篇
  • 嵌入式Linux:获取线程ID
  • gym 安装