如果一个两位数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13,交换后为31,13和31都是素数,所以13是绝对素数。 从键盘输入两个正整数A、B,请输出大于等于A、小于等于B的所有绝对素数。写出JAVA代码
时间: 2024-03-15 10:45:00 浏览: 65
以下是Java代码实现:
```java
import java.util.Scanner;
public class AbsolutePrime {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
for (int i = a; i <= b; i++) {
if (isPrime(i) && isAbsolutePrime(i)) {
System.out.println(i);
}
}
}
// 判断一个数是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 判断一个数是否为绝对素数
public static boolean isAbsolutePrime(int num) {
int reverseNum = reverse(num);
return isPrime(reverseNum);
}
// 反转一个数,例如:reverse(123) = 321
public static int reverse(int num) {
int reverseNum = 0;
while (num > 0) {
reverseNum = reverseNum * 10 + num % 10;
num /= 10;
}
return reverseNum;
}
}
```
输入A、B,程序会输出大于等于A、小于等于B的所有绝对素数。
阅读全文