aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/ext
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-06 22:00:05 +0200
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-06 22:00:05 +0200
commit76e1d24c9cb3f2461f4dca08271fa25f97e820b7 (patch)
tree232859b85c356d71fdb89e8c627df17455bd812b /aoc-2020-gleam/src/ext
parent20852d6e60bee896e84c9bae77f45211773dbf60 (diff)
downloadgleam_aoc2020-76e1d24c9cb3f2461f4dca08271fa25f97e820b7.tar.gz
gleam_aoc2020-76e1d24c9cb3f2461f4dca08271fa25f97e820b7.zip
Finish day 13
Diffstat (limited to 'aoc-2020-gleam/src/ext')
-rw-r--r--aoc-2020-gleam/src/ext/intx.gleam21
1 files changed, 21 insertions, 0 deletions
diff --git a/aoc-2020-gleam/src/ext/intx.gleam b/aoc-2020-gleam/src/ext/intx.gleam
index 9f06850..077b4f2 100644
--- a/aoc-2020-gleam/src/ext/intx.gleam
+++ b/aoc-2020-gleam/src/ext/intx.gleam
@@ -1,3 +1,24 @@
+import gleam/int
+import gleam/order.{Eq, Gt, Lt}
+
pub fn is_between(number: Int, min: Int, and max: Int) {
min <= number && number <= max
}
+
+pub fn ceil_divide(dividend: Int, by divisor: Int) -> Int {
+ { dividend + divisor - 1 } / divisor
+}
+
+fn gcd(a: Int, b: Int) -> Int {
+ case b == 0 {
+ True -> a
+ False -> gcd(b, a % b)
+ }
+}
+
+pub fn lcm(a: Int, b: Int) -> Int {
+ case int.compare(a, b) {
+ Gt | Eq -> { a / gcd(a, b) } * b
+ Lt -> { b / gcd(a, b) } * a
+ }
+}