Home » Reversed Even Perfect Squares

Reversed Even Perfect Squares

Find first 50 numbers where both the number and its reversed number are – Even – Perfect squares Ex. 44100 – This is even and its reversed number 00144 is also even. Square roots of 44100 is 2100 and of 00144 is 12 which are perfect squares.

📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 565
Challenge Difficulty: ⭐️⭐️⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn

Solving the challenge of Reversed Even Perfect Squares with Power Query

Power Query solution 1 for Reversed Even Perfect Squares, proposed by Kris Jaganah:
let
  A = Table.FromColumns(
    {
      List.FirstN(
        List.RemoveNulls(
          List.Transform(
            {10 .. 25000}, 
            each 
              let
                a = Number.Power(_, 2), 
                b = Number.Sqrt(Number.From(Text.Reverse(Text.From(a))))
              in
                if Number.Mod(b, 1) = 0 and Number.IsEven(a) and Number.IsEven(b) then a else null
          )
        ), 
        50
      )
    }, 
    {"Expected Answer"}
  )
in
  A
Power Query solution 2 for Reversed Even Perfect Squares, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Table.Combine(
    List.Skip(
      List.Generate(
        () => [x = 4, y = 0, z = 0], 
        each [y] <= 50, 
        each [
          x = [x] + 2, 
          z = [x] * [x], 
          y = 
            if Number.Mod(Number.Sqrt(Number.From(Text.Reverse(Text.From(z)))), 2) = 0 then
              [y] + 1
            else
              [y]
        ], 
        each Table.FromRows({Record.ToList([[z], [y]])})
      )
    )
  ), 
  Sol = Table.Skip(Table.Group(Source, "Column2", {{"A", each [Column1]{0}}}))[A]
in
  Sol
Power Query solution 3 for Reversed Even Perfect Squares, proposed by Abdallah Ally:
let
  RevPerfectEven = (n) =>
    [
      a = Number.From(Text.Reverse(Text.From(n))), 
      b = Number.Sqrt(a), 
      c = n > 9 and b = Number.Round(b) and Number.IsEven(a)
    ][c], 
  Result = List.RemoveNulls(
    List.Generate(
      () => [num = 2, cond = RevPerfectEven(num * num), count = 0], 
      each [count] <= 50, 
      each [num = [num] + 2, cond = RevPerfectEven(num * num), count = [count] + Byte.From(cond)], 
      each if [cond] then [num] * [num] else null
    )
  )
in
  Result
Power Query solution 4 for Reversed Even Perfect Squares, proposed by Abdallah Ally:
let
  // Function to check if a number and its reverse are even perfect squares 
  IsPerfectEvenNumRev = (num) =>
    [
      a = Number.From(Text.Reverse(Text.From(num))), 
      b = Number.Round(Number.Sqrt(num)) = Number.Sqrt(num) and Number.IsEven(num), 
      c = Number.Round(Number.Sqrt(a)) = Number.Sqrt(a) and Number.IsEven(a), 
      d = b and c
    ][d], 
  // Recursive function to generate the first n numbers given n (size) 
  Generate = (size, end) =>
    [
      a = List.Transform({4 .. end}, each Number.Power(2 * _, 2)), 
      b = List.Select(a, each IsPerfectEvenNumRev(_)), 
      c = if List.Count(b) >= size then List.FirstN(b, size) else @Generate(size, end * 10)
    ][c], 
  Result = Generate(50, 100)
in
  Result
Power Query solution 5 for Reversed Even Perfect Squares, proposed by Tyler N.:
let
  a = (x) =>
    let
      b = Number.RoundDown(Number.Log10(x) + 1), 
      c = List.Sum(
        List.Transform(
          {1 .. b}, 
          each 
            let
              d = Number.Power(10, _), 
              e = Number.Power(10, b - _) * Number.IntegerDivide(Number.Mod(x, d), d / 10)
            in
              e
        )
      )
    in
      c, 
  f = List.Transform(
    {5 .. 10554}, 
    each 
      let
        g = Number.Power(_ * 2, 2), 
        h = Number.Sqrt(a(g)), 
        i = Int8.From(Number.IsEven(g)), 
        j = Int8.From(Number.IsEven(h)), 
        k = Int8.From(Number.Mod(h, 1) = 0), 
        l = {null, g}
      in
        l{i * j * k}
  )
in
  List.RemoveNulls(f)

Solving the challenge of Reversed Even Perfect Squares with Excel

Excel solution 1 for Reversed Even Perfect Squares, proposed by Bo Rydobon 🇹🇭:
=LET(s,SEQUENCE(11000,,4,2)^2,r,BYROW(MID(s,10-SEQUENCE(,9),1),CONCAT)^0.5,FILTER(s,ISEVEN(r)*(INT(r)=r)))
Excel solution 2 for Reversed Even Perfect Squares, proposed by John V.:
=LET(s,SEQUENCE,b,s(10551,,4,2)^2,i,BYROW(MID(b,10-s(,9),1),CONCAT)^0.5,TOCOL(b/ISEVEN(i)/(i=INT(i)),2))
Excel solution 3 for Reversed Even Perfect Squares, proposed by Kris Jaganah:
=TAKE(TOCOL(MAP(SEQUENCE(25000,,10)^2,LAMBDA(x,LET(a,CONCAT(MID(x,SEQUENCE(LEN(x),,LEN(x),-1),1))^0.5,x/((MOD(a,1)=0)*ISEVEN(a)*ISEVEN(x))))),3),50)
Excel solution 4 for Reversed Even Perfect Squares, proposed by Julian Poeltl:
=LET(S,
    SEQUENCE(
        11^4,
        ,
        4,
        2
    ),
    SS,
    S^2,
    TAKE(FILTER(SS,
    MAP(SS,
    LAMBDA(A,
    LET(R,
    --CONCAT(
        MID(
            A,
            SEQUENCE(
                LEN(
                    A
                ),
                ,
                LEN(
                    A
                ),
                -1
            ),
            1
        )
    ),
    ISEVEN(
        R
    )*(MOD(
        SQRT(
        R
    ),
        1
    )=0))))),
    50))
Excel solution 5 for Reversed Even Perfect Squares, proposed by Timothée BLIOT:
=LET(A,
    SEQUENCE(
        10^5,
        ,
        4,
        2
    )^2,
    B,
    MAP(
        A,
        LAMBDA(
            x,
            CONCAT(
                MID(
                    x,
                    12-SEQUENCE(
                        11
                    ),
                    1
                )
            )
        )
    ),
    TAKE(FILTER(A,
    (B^0.5=INT(
        B^0.5
    ))*ISEVEN(
        B^0.5
    )),
    50))
Excel solution 6 for Reversed Even Perfect Squares, proposed by Hussein SATOUR:
=LET(L,
    LEN,
    I,
    ISEVEN,
    S,
    SORT,
    a,
    SEQUENCE(
        21102
    ),
    b,
    POWER(
        a,
        2
    ),
    c,
    MAP(
        b,
        LAMBDA(
            x,
            --CONCAT(
                MID(
                    x,
                    SEQUENCE(
                        L(
                            x
                        ),
                        ,
                        L(
                            x
                        ),
                        -1
                    ),
                    1
                )
            )
        )
    ),
    FILTER(b,
    MAP(b,
    c,
    LAMBDA(x,
    y,
    I(
                            x
                        )*I(
                            y
                        )*(S(
                            y
                        )=INT(
        S(
                            y
                        )
    ))))))
Excel solution 7 for Reversed Even Perfect Squares, proposed by Sunny Baggu:
=LET(
 _s, SEQUENCE(11000, , 20, 2) ^ 2,
 _rs, MAP(
 _s,
 LAMBDA(a, CONCAT(MID(a, LEN(a) + 1 - SEQUENCE(LEN(a)), 1)) + 0)
 ),
 TAKE(
 FILTER(
 _s,
 ISEVEN(--_s) * ISEVEN(--_rs) *
 (SQRT(_s) = INT(SQRT(_s)) * (SQRT(_rs) = INT(SQRT(_rs))))
 ),
 50
 )
)
Excel solution 8 for Reversed Even Perfect Squares, proposed by LEONARD OCHEA 🇷🇴:
=LET(S,
    SEQUENCE,
    t,
    S(
        10542,
        ,
        20,
        2
    )^2,
    i,
    MAP(
        t,
        LAMBDA(
            x,
            CONCAT(
                MID(
                    x,
                    10-S(
                        9
                    ),
                    1
                )
            )
        )
    )^0.5,
    TOCOL(t/(i=INT(
        i
    ))/ISEVEN(
        i
    ),
    3))
Excel solution 9 for Reversed Even Perfect Squares, proposed by Md. Zohurul Islam:
=LET(
    
    num,
    SEQUENCE(
        11000,
        ,
        20,
        2
    )^2,
    
    a,
    EXACT(
        SQRT(
            num
        ),
        INT(
            SQRT(
            num
        )
        )
    ),
    
    rev,
     MAP(
         num,
         LAMBDA(
             x,
             ABS(
                 CONCAT(
                     MID(
                         x,
                         SEQUENCE(
                             ,
                             LEN(
                                 x
                             ),
                             LEN(
                                 x
                             ),
                             -1
                         ),
                         1
                     )
                 )
             )
         )
     ),
    
    b,
    ISEVEN(
        rev
    ),
    
    c,
    EXACT(
        SQRT(
        rev
    ),
        INT(
            SQRT(
        rev
    )
        )
    ),
    
    d,
    a*b*c,
    
    e,
    FILTER(
        num,
        d>0
    ),
    
    f,
    SEQUENCE(
        COUNTA(
            e
        )
    ),
    
    result,
    FILTER(
        e,
        f<=50
    ),
    
    result
)
Excel solution 10 for Reversed Even Perfect Squares, proposed by Hamidi Hamid:
=LET(n,SEQUENCE(21200,,2,2),v,REDUCE(,n^2,LAMBDA(a,b,VSTACK(a,IF(AND(ISEVEN(CONCAT(SORTBY(MID(b,SEQUENCE(,LEN(b)),1),-SEQUENCE(,LEN(b))))*1),ISEVEN(CONCAT(SORTBY(MID(b,SEQUENCE(,LEN(b)),1),-SEQUENCE(,LEN(b)))*1)),SQRT(CONCAT(SORTBY(MID(b,SEQUENCE(,LEN(b)),1),-SEQUENCE(,LEN(b))))*1)=INT(SQRT(CONCAT(SORTBY(MID(b,SEQUENCE(,LEN(b)),1),-SEQUENCE(,LEN(b)))))*1)),b,"")))),DROP(DROP(FILTER(v,v<>"",),1),-15))

Solving the challenge of Reversed Even Perfect Squares with Python

Python solution 1 for Reversed Even Perfect Squares, proposed by Konrad Gryczan, PhD:
import pandas as pd
import math
path = "565 Even Number and Reversal Perfect Square.xlsx"
test = pd.read_excel(path, usecols="A", nrows=51)
def is_even(x):
 return x % 2 == 0
def is_perfect_square(x):
 sqrt_x = math.sqrt(x)
 return sqrt_x == int(sqrt_x)
def reverse_number(x):
 return int(str(x)[::-1])
def find_even_reverse_perfect_squares(n_required):
 results = []
 n = 10
 
 while len(results) < n_required:
 square = n ** 2
 reverse_square = reverse_number(square)
 if is_even(square) and is_even(reverse_square) and is_perfect_square(reverse_square):
 results.append({'original': square, 'reverse': reverse_square})
 n += 1
 return results
result = pd.DataFrame(find_even_reverse_perfect_squares(50))
print(result['original'].equals(test['Expected Answer']))
# True
                    
                  

Solving the challenge of Reversed Even Perfect Squares with Python in Excel

Python in Excel solution 1 for Reversed Even Perfect Squares, proposed by Alejandro Campos:
import math
def even_rev_perf_sqrs(req_n):
 is_even = lambda x: x % 2 == 0
 is_perfect_square = lambda x: math.isqrt(x) ** 2 == x
 reverse_number = lambda x: int(str(x)[::-1])
 
 results, n = [], 10
 while len(results) < req_n:
 sqr = n ** 2
 rev_sqr = reverse_number(sqr)
 if is_even(sqr) and is_even(rev_sqr) and is_perfect_square(rev_sqr):
 results.append({'Number': sqr, 'Reverse': rev_sqr})
 n += 1
 return results
result = pd.DataFrame(even_rev_perf_sqrs(50))
result
                    
                  
Python in Excel solution 2 for Reversed Even Perfect Squares, proposed by Abdallah Ally:
from math import sqrt, isqrt
# Create a function to identify numbers in question
def is_perf_rev_num(num):
 rev = int(str(num)[::-1])
 cond = sqrt(rev) == isqrt(rev) and not rev % 2
 return cond
 
# Perform data manipulation
numbers = []
num = 4
while len(numbers) < 50:
 if is_perf_rev_num(num ** 2):
 numbers.append(num * num)
 num += 2
df = pd.DataFrame({'Numbers': numbers})
df
                    
                  

Solving the challenge of Reversed Even Perfect Squares with R

R solution 1 for Reversed Even Perfect Squares, proposed by Konrad Gryczan, PhD:
library(tidyverse)
library(readxl)
path = "Excel/565 Even Number and Reversal Perfect Square.xlsx"
test = read_excel(path, range = "A1:A51")
is_even = function(x) {
 x %% 2 == 0
}
is_perfect_square = function(x) {
 sqrt_x = sqrt(x)
 sqrt_x == floor(sqrt_x)
}
reverse_number = function(x) {
 as.numeric(paste(rev(strsplit(as.character(x), NULL)[[1]]), collapse = ""))
}
find_even_reverse_perfect_squares = function(n_required) {
 results = vector("list", n_required)
 count = 1
 n = 10
 
 while (count <= n_required) {
 square = n^2
 reverse_square = reverse_number(square)
 if (is_even(square) && is_even(reverse_square) &&
 is_perfect_square(reverse_square)) {
 results[[count]] = list(original = square, reverse = reverse_square)
 count = count + 1
 }
 n = n + 1
 }
 return(results)
}
result = find_even_reverse_perfect_squares(50) %>%
 map_df(~ .x)
all.equal(result$original, test$`Expected Answer`)
# [1] TRUE
                    
                  

Solving the challenge of Reversed Even Perfect Squares with Excel VBA

Excel VBA solution 1 for Reversed Even Perfect Squares, proposed by Nicolas Micot:
VBA solution:
Sub test()
Dim nbATrouver
Dim Nombres As New Collection
Dim carreInverse
nbATrouver = 50
nombre = 11
While Nombres.Count < nbATrouver
 carre = nombre ^ 2
 carreInverse = CDbl(StrReverse(carre))
 
 If carre Mod 2 = 0 And carreInverse Mod 2 = 0 And Sqr(carreInverse)  1 = Sqr(carreInverse) / 1 Then
 Nombres.Add carre
 End If
 
 nombre = nombre + 1
 
Wend
ReDim tableau(1 To nbATrouver, 1 To 1)
For i = 1 To nbATrouver
 tableau(i, 1) = Nombres(i)
Next i
Range("B2").Resize(nbATrouver, 1).Value = tableau
End Sub
                    
                  

&&&

Leave a Reply