/*
13 17 31 37 71 73 79 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 1033
1061 1069 1091 1097 1103 1109 1151 1153 1181 1193
1201 1213 1217 1223 1229 1231 1237 1249 1259 1279
1283 1301 1321 1381 1399 1409 1429 1439 1453 1471
1487 1499 1511 1523 1559 1583 1597 1601 1619 1657
1669 1723 1733 1741 1753 1789 1811 1831 1847 1867
1879 1901 1913 1933 1949 1979 3011 3019 3023 3049
*/
public class NonReversePrime {
public static void main(String[] args) {
int count = 0;
for (int i = 13; count < 100; i++) {
if (isPrime(i)) {
if (isReversePrime(i)) {
count++;
System.out.print(i + "\t");
if (count % 10 == 0)
System.out.println();
}
}
}
}
public static boolean isPrime(int n) {
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0)
return false;
}
return true;
}
public static boolean isReversePrime(int n) {
if (isPrime(reverseNumber(n)) && (!isReverseNumber(n)))
return true;
else
return false;
}
public static boolean isReverseNumber(int n) {
if (reverseNumber(n) == n)
return true;
else
return false;
}
public static int reverseNumber(int n) {
int i, temp = n, count = 0;
long reverseNumber = 0;
final int DECIMAL = 10;
while ((temp /= DECIMAL) != 0)
count++;
do {
reverseNumber += (n % DECIMAL) * Math.pow(DECIMAL, count);
count--;
} while ((n /= DECIMAL) != 0);
return (int)reverseNumber;
}
}
Introduction to Java Programming编程题5.27<反素数>
最新推荐文章于 2021-08-29 00:39:27 发布