题目:求前100个回文素数,并将其输出。所谓回文素数是指对一个素数n,从左向右和从右向左是相同的,即称n为回文素数。(含代码详细注释和输出结果截图)
参考代码如下:
public class PalPrime {
//按顺序输出100个回文素数
public static void main(String[] args) {
int count = 0; //定义一个控制变量count,用于控制输出格式
//设置范围,最小的素数是2,所以i由2开始
for(int i = 2;count < 100;i++){
//如果i是素数,且i还是回文数,那就输出
if(isPrime(i) && isPalindrome(i)){
System.out.print(i + " ");
count++;
if(count % 20 == 0) //控制输出格式,每行输出20个
System.out.println();
}
}
}
//定义一个方法isPrime(),用于判断是否为素数,返回值为boolean型
public static boolean isPrime(int num) {
for(int i = 2;i <= Math.sqrt(num);i++) //节省资源
if(num % i == 0)
return false;
return true;
}
//定义一个方法reversal(),用于实现反转原数,即将原数逆序输出
static int reversal(int num) {
int result = 0; //先定义一个变量,用于存储逆序后的结果,初值为0
while(num != 0){
int lastDigit = num % 10; //取余
result = result * 10+ lastDigit; //重新组合
num = num / 10; //求商
}
return result;
}
//定义一个方法isPalindrome(),用于判断是否为回文数
static boolean isPalindrome(int num) {
return num == reversal(num); //判断原数是否与逆序数相同
}
}
输出结果截图如下: