Definitions and restrictions

Rare   numbers are positive integers    n    where:

    n    is expressed in base ten
    r    is the reverse of    n      (decimal digits)
    n    must be non-palindromic   (n ≠ r)
    (n+r)    is the   sum
    (n-r)    is the   difference   and must be positive
   the   sum   and the   difference   must be perfect squares


Task

   find and show the first   5   rare   numbers
   find and show the first   8   rare   numbers       (optional)
   find and show more   rare   numbers                (stretch goal)


Show all output here, on this page.



References

   an   OEIS   entry:   A035519          rare numbers.
   an   OEIS   entry:   A059755   odd rare numbers.
   planetmath entry:   rare numbers.     (some hints)
   author's  website:   rare numbers   by Shyam Sunder Gupta.     (lots of hints and some observations).


val .perfectsquare = f isInteger .n ^/ 2
 
val .israre = f(.n) {
    val .r = reverse(.n)
    if .n == .r: return false
    val .sum = .n + .r
    val .diff = .n - .r
    .diff > 0 and .perfectsquare(.sum) and .perfectsquare(.diff)
}
 
val .findfirst = f(.max) {
    for[=[]] .i = 0; ; .i += 1 {
        if .israre(.i) {
            _for ~= [.i]
            if len(_for) == .max: break
        }
    }
}
 
# if you have the time...
writeln "the first 5 rare numbers: ", .findfirst(5)