Home » Find Co-Prime Pairs

Find Co-Prime Pairs

Co-prime numbers are those numbers whose Highest Common Factor (Highest Common Divisor) is 1. Example. 1. 21, 49 – 7 is the HCF, hence these are not co-primes. 2. 21, 50 – 1 is the HCF, hence these are co-primes. List the numbers which are co-primes. Note – Co-prime doesn’t mean that these numbers are prime numbers. Hence, there is no need to check whether these numbers are prime numbers or not.

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

Solving the challenge of Find Co-Prime Pairs with Power Query

Power Query solution 1 for Find Co-Prime Pairs, proposed by Bo Rydobon 🇹🇭:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Filter = Table.SelectRows(
    Source, 
    each 
      let
        A = List.Transform(Text.Split([Numbers], ","), Number.From), 
        C = {2} & List.Numbers(3, Number.Sqrt(List.Max(A)) / 2 - 1, 2) & A
      in
        not List.AnyTrue(
          List.Transform(C, (c) => List.AllTrue(List.Transform(A, (a) => Number.Mod(a, c) = 0)))
        )
  )
in
  Filter
Power Query solution 2 for Find Co-Prime Pairs, proposed by Bo Rydobon 🇹🇭:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Filter = Table.SelectRows(
    Source, 
    each 
      let
        A = List.Transform(Text.Split([Numbers], ","), Number.From), 
        C = {2} & List.Numbers(3, Number.Sqrt(List.Max(A)) / 2 - 1, 2) & A
      in
        not List.AnyTrue(
          List.Transform(C, (c) => List.AllTrue(List.Transform(A, (a) => Number.Mod(a, c) = 0)))
        )
  )
in
  Filter
Power Query solution 3 for Find Co-Prime Pairs, proposed by Zoran Milokanović:
let
  Source = Excel.CurrentWorkbook(){[Name = "Input"]}[Content][Numbers], 
  HCF2 = (a, b) =>
    let
      r = Number.Mod(a, b)
    in
      if r = 0 then b else @HCF2(b, r), 
  S = List.Select(
    Source, 
    each 
      let
        n = List.Transform(Text.Split(_, ", "), Number.From)
      in
        List.Accumulate(List.Skip(n), n{0}, (s, c) => HCF2(s, c)) = 1
  )
in
  S
Power Query solution 4 for Find Co-Prime Pairs, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Sol = Table.SelectRows(
    Table.AddColumn(
      Source, 
      "Custom", 
      each 
        let
          a = List.Transform(Text.Split([Numbers], ", "), each Number.From(_)), 
          b = List.Min(a), 
          c = {2} & List.Select({3 .. Int64.From(Number.Sqrt(b))}, Number.IsOdd), 
          d = List.Transform(
            {0 .. List.Count(a) - 1}, 
            each List.Transform(c, (x) => Number.Mod(a{_}, x))
          ), 
          e = List.AnyTrue(
            Table.AddColumn(Table.FromColumns(d), "new", each List.Sum(Record.ToList(_)) = 0)[new]
          )
        in
          e
    ), 
    each ([Custom] = false)
  )[[Numbers]]
in
  Sol
Power Query solution 5 for Find Co-Prime Pairs, proposed by Alejandro Simón 🇵🇦 🇪🇸:
let
  Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
  Num = Table.AddColumn(
    Source, 
    "Custom", 
    each 
      let
        a = Text.Split([Numbers], ", "), 
        b = List.Transform(a, Number.From), 
        c = List.Intersect(
          List.Transform(
            {0 .. List.Count(b) - 1}, 
            each List.Transform({1 .. b{_}}, (x) => b{_} / x)
          )
        ){0}
      in
        c
  ), 
  Sol = Table.SelectRows(Num, each ([Custom] = 1))[[Numbers]]
in
  Sol

Solving the challenge of Find Co-Prime Pairs with Excel

Excel solution 1 for Find Co-Prime Pairs, proposed by Bo Rydobon 🇹🇭:
=FILTER(
    A2:A10,
    1=MAP(
        A2:A10,
        LAMBDA(
            a,
            GCD(
                TEXTSPLIT(
                    a,
                    ","
                )
            )
        )
    )
)
Excel solution 2 for Find Co-Prime Pairs, proposed by Rick Rothstein:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            GCD(
                TEXTSPLIT(
                    x,
                    ","
                )
            )
        )
    )=1
)
Excel solution 3 for Find Co-Prime Pairs, proposed by John V.:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            GCD(
                TEXTSPLIT(
                    x,
                    ","
                )
            )
        )
    )=1
)
Excel solution 4 for Find Co-Prime Pairs, proposed by محمد حلمي:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            GCD(
                TEXTSPLIT(
                    a,
                    ","
                )
            )=1
        )
    )
)
Excel solution 5 for Find Co-Prime Pairs, proposed by محمد حلمي:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            a,
            LET(
                
                r,
                TEXTSPLIT(
                    a,
                    ,
                    ","
                ),
                GCD(
                    DROP(
                        r,
                        1
                    ),
                    DROP(
                        r,
                        -1
                    )
                )
            )
        )
    )=1
)
Excel solution 6 for Find Co-Prime Pairs, proposed by Kris Jaganah:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            x,
            GCD(
                TEXTSPLIT(
                    x,
                    ", "
                )
            )
        )
    )=1
)
Excel solution 7 for Find Co-Prime Pairs, proposed by Julian Poeltl:
=LET(
    N,
    A2:A10,
    FILTER(
        N,
        MAP(
            N,
            LAMBDA(
                A,
                GCD(
                    --TEXTSPLIT(
                        A,
                        ","
                    )
                )=1
            )
        )
    )
)
Excel solution 8 for Find Co-Prime Pairs, proposed by Timothée BLIOT:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
         LAMBDA(
             z,
              GCD(
                  TEXTSPLIT(
                      z,
                      ", "
                  )
              )=1
         )
    )
)
Excel solution 9 for Find Co-Prime Pairs, proposed by Hussein SATOUR:
=LET(
    a,
     A2:A10,
     FILTER(
         a,
          MAP(
              a,
               LAMBDA(
                   x,
                    GCD(
                        TEXTSPLIT(
                            x,
                            ", "
                        )
                    )
               )
          )=1
     )
)
Excel solution 10 for Find Co-Prime Pairs, proposed by Sunny Baggu:
=FILTER(
    
     A2:A10,
    
     MAP(
         
          A2:A10,
         
          LAMBDA(
              x,
               LET(
                   _m,
                    TEXTSPLIT(
                        x,
                         ", "
                    ) + 0,
                    GCD(
                        _m
                    ) = 1
               )
          )
          
     )
    
)
Excel solution 11 for Find Co-Prime Pairs, proposed by Daniel Garzia:
=FILTER(
    A2:A10,
    MAP(
        A2:A10,
        LAMBDA(
            n,
            GCD(
                --TEXTSPLIT(
                    n,
                    ", "
                )
            )
        )
    )=1
)
Excel solution 12 for Find Co-Prime Pairs, proposed by Hussain Ali Nasser:
=FILTER(
    A2:A10,
    BYROW(
        A2:A10,
        LAMBDA(
            _numbers,
            GCD(
                TEXTSPLIT(
                    _numbers,
                    ,
                    ", "
                )
            )=1
        )
    )
)
Excel solution 13 for Find Co-Prime Pairs, proposed by Adam Carter:
=LET(
numbers,
    A2:A10,
    
length,
    ROWS(
        numbers
    ),
    
truth,
    DROP(--(REDUCE(
        "",
        SEQUENCE(
            length
        ),
        LAMBDA(
            a,
            v,
            VSTACK(
                a,
                GCD(
                    TEXTSPLIT(
                        INDEX(
                            numbers,
                            v,
                            
                        ),
                        ","
                    )
                )
            )
        )
    )=1),
    1),
    
output,
    FILTER(
        numbers,
        truth
    ),
    output)

&&&

Leave a Reply