Home » Find Insolite Numbers

Find Insolite Numbers

List the Insolite Numbers – A number is Insolite if it is divisible by both Sum of square of its digits AND Product of square of its digits Ex. 1122112 which is divisible by both 1^2+1^2+2^2+2^2+1^2+1^2+2^2 = 8 and =1^2*1^2*2^2*2^2*1^2*1^2*2^2 = 64

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

Solving the challenge of Find Insolite Numbers with Power Query

Power Query solution 1 for Find Insolite Numbers, proposed by Aditya Kumar Darak 🇮🇳:
let
  Source = Excel.CurrentWorkbook(){[Name = "data"]}[Content], 
  Return = Table.SelectRows(
    Source, 
    each [
      T  = Text.From([Numbers]), 
      L  = Text.ToList(T), 
      Sq = List.Transform(L, (f) => Number.Power(Number.From(f), 2)), 
      S  = List.Sum(Sq), 
      P  = List.Product(Sq), 
      R  = Number.Mod([Numbers], S) = 0 and Number.Mod([Numbers], P) = 0
    ][R]
  )
in
  Return
Power Query solution 2 for Find Insolite Numbers, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Sol = Table.SelectRows(
    Source, 
    each 
      let
        a = Text.ToList(Text.From([Numbers])), 
        b = List.Transform(a, each Number.Power(Number.From(_), 2)), 
        c = List.Sum(b), 
        d = List.Product(b), 
        e = List.Transform({c, d}, (x) => Number.Mod([Numbers], x) = 0)
      in
        List.AllTrue(e)
  )
in
  Sol
Power Query solution 3 for Find Insolite Numbers, proposed by Luan Rodrigues:
let
  Fonte = Tabela1, 
  res = Table.SelectRows(
    Fonte, 
    each [
      a = List.Transform(Text.ToList(Text.From([Numbers])), each Number.Power(Number.From(_), 2)), 
      b = try Int64.From([Numbers] / List.Product(a)) = [Numbers] / List.Product(a) otherwise false, 
      c = try Int64.From([Numbers] / List.Sum(a)) = [Numbers] / List.Sum(a) otherwise false, 
      d = List.AllTrue({b} & {c})
    ][d]
  )
in
  res
Power Query solution 4 for Find Insolite Numbers, proposed by Alexis Olson:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Filter = Table.SelectRows(
    Source, 
    each [
      Digits = List.Transform(Text.ToList(Number.ToText([Numbers])), Number.FromText), 
      Sq     = List.Transform(Digits, (d) => d * d), 
      Sum    = List.Sum(Sq), 
      Prod   = List.Product(Sq), 
      Result = Number.Mod([Numbers], Sum) = 0 and Number.Mod([Numbers], Prod) = 0
    ][Result]
  )
in
  Filter
Power Query solution 5 for Find Insolite Numbers, proposed by Rafael González B.:
let
  Source = Excel.CurrentWorkbook(){0}[Content], 
  Result = Table.SelectRows(
    Source, 
    each 
      let
        T = Text.From([Numbers]), 
        a = Text.ToList(T), 
        b = List.Transform(a, each Number.Power(Number.From(_), 2)), 
        c = Number.Mod(Number.From(T), List.Sum(b)), 
        d = Number.Mod(Number.From(T), List.Product(b)), 
        e = c = 0 and d = 0
      in
        e
  )
in
  Result

Solving the challenge of Find Insolite Numbers with Excel

Excel solution 1 for Find Insolite Numbers, proposed by Bo Rydobon 🇹🇭:
=TOCOL(MAP(A2:A10,
    LAMBDA(n,
    LET(m,
    MID(
        n,
        SEQUENCE(
            LEN(
                n
            )
        ),
        1
    )^2,
    n/(n=LCM(
        n,
        SUM(
            m
        ),
        PRODUCT(
            m
        )
    ))))),
    3)
Excel solution 2 for Find Insolite Numbers, proposed by Rick Rothstein:
=FILTER(A2:A10,
    MAP(A2:A10,
    LAMBDA(x,
    LET(d,
    MID(
        x,
        SEQUENCE(
            LEN(
                x
            )
        ),
        1
    )^2,
    (1-ISNUMBER(
        FIND(
            ".",
            x/SUM(
                d
            )
        )
    ))*(1-ISNUMBER(
        FIND(
            ".",
            x/PRODUCT(
                d
            )
        )
    ))))))
Excel solution 3 for Find Insolite Numbers, proposed by John V.:
=TOCOL(MAP(A2:A10,
    LAMBDA(x,
    LET(n,
    MID(
        x,
        SEQUENCE(
            LEN(
                x
            )
        ),
        1
    )^2,
    b,
    x^2/SUM(
        n
    )/PRODUCT(
        n
    ),
    x/(b=INT(
        b
    ))))),
    2)
Excel solution 4 for Find Insolite Numbers, proposed by محمد حلمي:
=TOCOL(
    MAP(
        A2:A10,
        LAMBDA(
            a,
            LET(
                e,
                MID(
                    a,
                    SEQUENCE(
                        LEN(
                            a
                        )
                    ),
                    1
                )^2,
                v,
                a/HSTACK(
                    PRODUCT(
                        e
                    ),
                    SUM(
                        e
                    )
                ),
                a/AND(
                    v=INT(
                        v
                    )
                )
            )
        )
    ),
    2
)
Excel solution 5 for Find Insolite Numbers, proposed by Julian Poeltl:
=FILTER(A2:A10,
    MAP(A2:A10,
    LAMBDA(N,
    LET(S,
    MID(
        N,
        SEQUENCE(
            1,
            LEN(
                N
            )
        ),
        1
    ),
    SSum,
    SUM(
        S^2
    ),
    SP,
    PRODUKT(
        S^2
    ),
    IFERROR(IF(AND((ROUND(
        N/SSum,
        0
    )=N/SSum),
    (ROUND(
        N/SP,
        0
    )=N/SP)),
    TRUE,
    FALSE),
    FALSE))))=TRUE)
Excel solution 6 for Find Insolite Numbers, proposed by Timothée BLIOT:
=TOCOL(
    IF(
        MAP(
            A2:A10,
            LAMBDA(
                z,
                LET(
                    A,
                    MID(
                        z,
                        SEQUENCE(
                            LEN(
                                z
                            )
                        ),
                        1
                    )^2,
                    B,
                    LAMBDA(
                        n,
                        INT(
                            n
                        )=n
                    ),
                    C,
                    z/SUM(
                        A
                    ),
                    D,
                    z/PRODUCT(
                        A
                    ),
                    B(
                        C
                    )*B(
                        D
                    )
                )
            )
        ),
        A2:A10,
        1/0
    ),
    3
)
Excel solution 7 for Find Insolite Numbers, proposed by Sunny Baggu:
=TOCOL(
    
     A2:A10 * 1 /
     MAP(
         
          A2:A10,
         
          LAMBDA(
              a,
              
               LET(
                   
                    _m,
                    MID(
                        a,
                         SEQUENCE(
                             LEN(
                                 a
                             )
                         ),
                         1
                    ) ^ 2,
                   
                    _s,
                    SUM(
                        _m
                    ),
                   
                    _p,
                    PRODUCT(
                        _m
                    ),
                   
                    _r,
                    a / HSTACK(
                        _s,
                         _p
                    ),
                   
                    AND(
                        _r = INT(
                            _r
                        )
                    )
                    
               )
               
          )
          
     ),
    
     3
    
)
Excel solution 8 for Find Insolite Numbers, proposed by Pieter de Bruijn:
=TOCOL(MAP(A2:A10,
    LAMBDA(a,
    LET(n,
    MID(
        a,
        SEQUENCE(
            LEN(
                a
            )
        ),
        1
    )^2,
    s,
    a/SUM(
        n
    ),
    p,
    a/PRODUCT(
        n
    ),
    a/(s-INT(
        s
    )+p-INT(
        p
    )=0)))),
    2)
Excel solution 9 for Find Insolite Numbers, proposed by Nicolas Micot:
=FILTRE(A2:A9;
    MAP(A2:A9;
    LAMBDA(l_nombre;
    LET(_carres;
    STXT(
        l_nombre;
        SEQUENCE(
            NBCAR(
                l_nombre
            )
        );
        1
    ) ^ 2;
    
(MOD(
    l_nombre;
    SOMME(
        _carres
    )
) = 0)*SI(PRODUIT(
        _carres
    ) = 0;
    0;
    (MOD(
        l_nombre;
        PRODUIT(
        _carres
    )
    )=0)))))=1)
Excel solution 10 for Find Insolite Numbers, proposed by Nicolas Micot:
=FILTRE(A2:A10;
    MAP(A2:A10
;
    LAMBDA(l_nombre;
    LET(_carres;
    STXT(
        l_nombre;
        SEQUENCE(
            NBCAR(
                l_nombre
            )
        );
        1
    ) ^ 2;
    
(TRONQUE(
    l_nombre/SOMME(
        _carres
    )
) = l_nombre/SOMME(
        _carres
    ))*SI(PRODUIT(
        _carres
    ) = 0;
    0;
    (TRONQUE(
        l_nombre/PRODUIT(
        _carres
    )
    )=l_nombre/PRODUIT(
        _carres
    ))))))=1)
Excel solution 11 for Find Insolite Numbers, proposed by Giorgi Goderdzishvili:
=TOCOL(MAP(A2:A10,
    LAMBDA(x,
    
LET(
_nm,
    x,
    
_cr,
     1*MID(
         _nm,
         SEQUENCE(
             ,
             LEN(
                 _nm
             )
         ),
         1
     ),
    
_sm,
     SUM(
         _cr^2
     ),
    
_ml,
     PRODUCT(
         _cr^2
     ),
    
_ch,
     (LCM(
         _nm,
         _sm
     ) + LCM(
         _nm,
         _ml
     ))=2*_nm,
    
_nm/_ch))),
    3)
Excel solution 12 for Find Insolite Numbers, proposed by Edwin Tisnado:
=TOCOL(MAP(A2:A10,
    LAMBDA(x,
    LET(a,
    MID(
        x,
        SEQUENCE(
            LEN(
                x
            )
        ),
        1
    )^2,
    x/(x=LCM(
        x,
        SUM(
            a
        ),
        PRODUCT(
            a
        )
    ))))),
    2)
Excel solution 13 for Find Insolite Numbers, proposed by LUIS FLORENTINO COUTO CORTEGOSO:
=LET(
    f,
    LAMBDA(
        n,
        LET(
            l,
            LEN(
                n
            ),
            s,
            SEQUENCE(
                l
            ),
            d,
            MID(
                n,
                s,
                1
            ),
            AND(
                INT(
                    n/SUM(
                        d^2
                    )
                )=n/SUM(
                        d^2
                    ),
                INT(
                    n/PRODUCT(
                        d^2
                    )
                )=n/PRODUCT(
                        d^2
                    )
            )
        )
    ),
    FILTER(
        A2:A10,
        IFERROR(
            MAP(
                A2:A10,
                LAMBDA(
                    x,
                    f(
                        x
                    )
                )
            ),
            0
        )
    )
)
Excel solution 14 for Find Insolite Numbers, proposed by Gabriel Raigosa:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            LET(
                c,
                MID(
                    x,
                    SEQUENCE(
                        LEN(
                            x
                        )
                    ),
                    1
                )^2,
                LCM(
                    x,
                    SUM(
                        c
                    ),
                    PRODUCT(
                        c
                    )
                )=x
            )
        )
    )
) 

▶️ES:
=FILTRAR(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            LET(
                c,
                EXTRAE(
                    x,
                    SECUENCIA(
                        LARGO(
                            x
                        )
                    ),
                    1
                )^2,
                M.C.M(
                    x,
                    SUMA(
                        c
                    ),
                    PRODUCTO(
                        c
                    )
                )=x
            )
        )
    )
)

Solving the challenge of Find Insolite Numbers with Python in Excel

Python in Excel solution 1 for Find Insolite Numbers, proposed by Alejandro Campos:
def es_insolito(numero):
 digitos = [int(d) for d in str(numero)]
 suma_cuadrados = sum(d ** 2 for d in digitos)
 producto_cuadrados = 1
 for d in digitos:
 producto_cuadrados *= d ** 2
 
 es_divisible_por_suma = (numero % suma_cuadrados == 0)
 es_divisible_por_producto = (producto_cuadrados != 0 and numero % producto_cuadrados == 0)
 return es_divisible_por_suma and es_divisible_por_producto
def verificar_numeros_insolitos(numeros):
 resultados = []
 for numero in numeros:
 if es_insolito(numero):
 resultados.append(numero)
 return resultados
data = xl("A1:A10", headers=True)
numeros = data['Numbers'].tolist()
numeros_insolitos = verificar_numeros_insolitos(numeros)
df = pd.DataFrame({'Solución en PY': numeros_insolitos})
df
                    
                  
            
  
                  
      
        
    
        
    
          
    
  
          
  
      
  
                  
    
      
        Show translation
      
      

Solving the challenge of Find Insolite Numbers with R

R solution 1 for Find Insolite Numbers, proposed by Krzysztof Nowak:
options(scipen = 9990)
IsInsolite <- function(x) {
 X <- x
 Y <- as.character(X)
 Split <- as.numeric(unlist(str_split(Y, "")))
 Sum_of_square <- sum(Split^2)
 Product_of_square &<- prod(Split^2)
 result <- X %% Sum_of_square == 0 && X %% Product_of_square == 0
 return(result)
}
Answer <- df |>
 filter(map(Numbers,IsInsolite) == TRUE)
Answer
                    
                  

&&

Leave a Reply