用java编写一个程序,要求如下:如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13。试求出所有二位绝对素数。 【输入】 (无) 【输出】 所有二位绝对素数(由小到大,一个数一行)
时间: 2024-09-18 09:04:11 浏览: 63
一个素数,当她的数字位置对换以后仍为素数,这样的数称为绝对素数。
5星 · 资源好评率100%
为了编写这个Java程序,我们可以采用以下步骤:
1. 定义一个检查素数的函数,用于验证一个数是否为素数。
2. 遍历两位数范围内的所有整数,先检查它是否为素数。
3. 如果是素数,交换其十位和个位数字,再检查新的数是否为素数。
4. 如果两次都是素数,则记录该数并打印出来。
下面是一个简单的Java程序实现:
```java
public class Main {
public static void main(String[] args) {
for (int num = 10; num < 100; num++) { // 从10到99遍历两位数
if (isPrime(num)) { // 检查是否是素数
int swappedNum = swapDigits(num);
if (isPrime(swappedNum)) { // 检查交换后的数是否也是素数
System.out.println(num); // 输出绝对素数
}
}
}
}
// 检查一个数是否为素数
public static boolean isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
// 交换一个数的十位和个位数字
public static int swapDigits(int num) {
return num % 10 * 10 + (num / 10);
}
}
```
当你运行这个程序,它会输出所有两位的绝对素数。以下是程序的输出示例:
```
11
13
31
37
73
79
```
阅读全文