0

I am making this kata: https://www.codewars.com/kata/55de8eabd9bef5205e0000ba/train/java and one of the parts is to check that the prime digit will not be assessed as "emirp" if it is palindrome, I wanted to do that using SrtingBuilder reverse method:

public static Long reverseDigits(Long pNum) {
      return Long.parseLong(new StringBuilder(String.valueOf(pNum)).reverse().toString());
    }

But I got somewhat strange results; upon calling:

Set<Long> primes = possiblePrimesUnderBound(upperBound(n));
parseSolution(
        primes.stream()
          .filter(elem -> primes.contains(reverseDigits(elem)))
          .filter(elem -> elem < n)
          // important part start
          .peek(elem -> System.out.println("before checking for palindromes: " + elem))
          .filter(elem -> elem != reverseDigits(elem))
          .peek(elem -> System.out.println("after checking for palindromes: " + elem))
          // important part end
          .collect(Collectors.toList())
      );

I receive:

before checking for palindromes: 13
after checking for palindromes: 13
before checking for palindromes: 17
after checking for palindromes: 17
before checking for palindromes: 31
after checking for palindromes: 31
before checking for palindromes: 37
after checking for palindromes: 37
before checking for palindromes: 71
after checking for palindromes: 71
before checking for palindromes: 73
after checking for palindromes: 73
before checking for palindromes: 79
after checking for palindromes: 79
before checking for palindromes: 97
after checking for palindromes: 97
before checking for palindromes: 101 // check passes
before checking for palindromes: 107
after checking for palindromes: 107
before checking for palindromes: 113
after checking for palindromes: 113
before checking for palindromes: 131 // check fails
after checking for palindromes: 131
before checking for palindromes: 149
after checking for palindromes: 149
before checking for palindromes: 151 // check fails
after checking for palindromes: 151
before checking for palindromes: 157
after checking for palindromes: 157
before checking for palindromes: 167
after checking for palindromes: 167
before checking for palindromes: 179
after checking for palindromes: 179
before checking for palindromes: 181 // check fails
after checking for palindromes: 181
before checking for palindromes: 191 // check fails
after checking for palindromes: 191
before checking for palindromes: 199
after checking for palindromes: 199

For numbers below 200: notice that my check works for 101 but doesn't work for 131, 151, 181, and 191, Does anyone have a clue where I am making mistake?

BJagger
  • 181
  • 10

0 Answers0