Java查找素数回文数及各位数字之和
Java查找素数回文数及各位数字之和
本文提供了一个Java程序,用于查找1到N之间的所有素数回文数,并计算每个回文数的各位数字之和。
什么是素数回文数?
- 素数: 只能被1和自身整除的自然数(例如2, 3, 5, 7, 11等)。* 回文数: 正序和倒序读取都相同的数字(例如121, 353, 9009等)。
**代码示例:**javaimport java.util.ArrayList;import java.util.List;
public class PrimePalindrome {
public static boolean isPrime(int number) { if (number <= 1) { return false; } for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { return false; } } return true; }
public static boolean isPalindrome(int number) { int originalNumber = number; int reverseNumber = 0; while (number != 0) { int digit = number % 10; reverseNumber = reverseNumber * 10 + digit; number /= 10; } return originalNumber == reverseNumber; }
public static int getDigitSum(int number) { int sum = 0; while (number != 0) { int digit = number % 10; sum += digit; number /= 10; } return sum; }
public static List<Integer> getPrimePalindromes(int N) { List<Integer> primePalindromes = new ArrayList<>(); for (int i = 1; i <= N; i++) { if (isPrime(i) && isPalindrome(i)) { primePalindromes.add(i); } } return primePalindromes; }
public static void main(String[] args) { int N = 100; // 请根据需求设置 N 的值 List<Integer> primePalindromes = getPrimePalindromes(N); for (int number : primePalindromes) { int digitSum = getDigitSum(number); System.out.println('回文数:' + number + ',各位数字之和:' + digitSum); } }}
代码解释:
isPrime(int number): 判断一个数是否为素数。2.isPalindrome(int number): 判断一个数是否为回文数。3.getDigitSum(int number): 计算一个数各位数字的和。4.getPrimePalindromes(int N): 查找1到N之间的所有素数回文数。5.main(String[] args): 主函数,设置范围N,调用其他函数查找并输出结果。
使用方法:
修改main函数中的N值,即可改变查找范围。运行程序,即可输出1到N之间的所有素数回文数及其各位数字之和。
原文地址: http://www.cveoy.top/t/topic/Yj2 著作权归作者所有。请勿转载和采集!