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;
}
}