写一个代码,回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。 输入格式 输入一个正整数 输出格式 符合要求的回文素数 示例 输入:10 输出:2 3 5 7 11 101 131 151 181 191 平均代码量 20 行
时间: 2024-02-25 14:54:08 浏览: 46
好的,以下是 Java 的代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
int x = 2;
while (count < n) {
if (isPrime(x) && isPalindrome(x)) {
System.out.print(x + " ");
count++;
}
x++;
}
}
public static boolean isPrime(int x) {
if (x < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
public static boolean isPalindrome(int x) {
String s = Integer.toString(x);
return s.equals(new StringBuilder(s).reverse().toString());
}
}
```
代码思路解析:
1. 首先定义两个方法:`isPrime(x)` 判断一个数是否是素数,`isPalindrome(x)` 判断一个数是否是回文数;
2. 接着读入用户输入的正整数 n,定义计数器 count 和待检验的数 x 的初始值为 0 和 2;
3. 进入 while 循环,每次检验 x 是否是回文素数,如果是,则输出 x,并将计数器 count 加 1;
4. 如果 count 的值达到了 n,则跳出循环,程序结束。
希望这个代码能够满足您的需求。
阅读全文