apple / swift-numerics

Advanced mathematical types and functions for Swift
Apache License 2.0
1.66k stars 140 forks source link

Variadic GCD and LCM #275

Open LePips opened 7 months ago

LePips commented 7 months ago

While #10 exists, I will use this as a separate tracker for these two algorithms and their variadic structure. Also inspired by Advent of Code 2023 Day 8 pt 2 which used the LCM of a collection of numbers.

The existing gcd can be made easily to take a variadic amount of values, along with some checks. lcm can also be implemented using the gcd method, also variadic.

It does allow 0 and 1 parameters, which are easy cases to account for. Just seems funky that one can put gcd() and lcm() 🤷, but these have sensible mathematical conventions.