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)
&&&
