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之间的所有素数回文数及其各位数字之和。
原文地址: https://www.cveoy.top/t/topic/Yj2 著作权归作者所有。请勿转载和采集!