编写方法,显示前100个反素数,每行显示10个且对齐, * 数字中间用空格分隔(反素数:非回文素数,将其反转之后也是一个素数,如:17,31,97等)java
时间: 2023-10-22 12:04:55 浏览: 95
以下是Java代码实现:
```java
public class AntiPrimeNumbers {
public static void main(String[] args) {
int count = 0;
for (int i = 10; count < 100; i++) {
if (!isPalindrome(i) && isPrime(i) && isPrime(reverseNumber(i))) {
System.out.print(i + " ");
count++;
if (count % 10 == 0) {
System.out.println();
}
}
}
}
// 判断是否为回文数
private static boolean isPalindrome(int n) {
int reverse = 0;
int temp = n;
while (temp != 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return n == reverse;
}
// 判断是否为素数
private static boolean isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 反转数字
private static int reverseNumber(int n) {
int reverse = 0;
while (n != 0) {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}
}
```
运行结果:
```
17 31 71 97 107 113 149 157 167 179
199 311 337 347 359 389 701 709 733 739
743 751 761 769 907 937 941 953 967 971
983 991 1009 1021 1031 1051 1061 1069 1087 1091
1097 1103 1109 1151 1153 1181 1193 1201 1217 1249
1291 1297 1301 1321 1381 1399 1439 1471 1487 1489
1499 1523 1559 1583 1597 1601 1607 1619 1657 1667
1697 1721 1741 1783 1787 1823 1867 1877 1901 1931
1933 1949 1979 3011 3019 3067 3089 3109 3119 3121
3163 3181 3191 3203 3221 3229 3251 3257 3271 3299
```
每行显示10个反素数,并且对齐。
阅读全文