Instructions
https://www.codewars.com/kata/5539fecef69c483c5a000015/train/java
Solution:
public class BackWardsPrime {
public static String backwardsPrime(long start, long end) {
StringBuilder sb = new StringBuilder();
for(long i = start; i <= end; i++){
if(i % 2 == 0){
continue;
}
long backwardRead = Long.valueOf(new StringBuilder(String.valueOf(i)).reverse().toString());
if(isPrime(i) && !isPalindrome(i) && isPrime(backwardRead)){
sb.append(String.valueOf(i)).append(" ");
}
}
return sb.toString().trim();
}
private static boolean isPalindrome(long a){
String str = String.valueOf(a);
int len = str.length();
for(int i = 0; i < len / 2; i++){
if(str.charAt(i) != str.charAt(len - 1 - i)){
return false;
}
}
return true;
}
private static boolean isPrime(long a){
if(a < 2){ // A prime number is no less than 2
return false;
}else{
for(int i = 2; i <= Math.sqrt(a); i++){
if(a % i == 0){
return false;
}
}
}
return true;
}
}
Sample Tests:
https://www.codewars.com/kata/5539fecef69c483c5a000015/train/java