diff --git a/math_utils.py b/math_utils.py new file mode 100644 index 0000000..12aab18 --- /dev/null +++ b/math_utils.py @@ -0,0 +1,36 @@ +"""Math utility functions.""" +import math + + +def fibonacci(n: int) -> list[int]: + if n <= 0: + return [] + if n == 1: + return [0] + seq = [0, 1] + for _ in range(2, n): + seq.append(seq[-1] + seq[-2]) + return seq + + +def is_prime(n: int) -> bool: + if n < 2: + return False + for i in range(2, int(math.sqrt(n)) + 1): + if n % i == 0: + return False + return True + + +def gcd(a: int, b: int) -> int: + while b: + a, b = b, a % b + return a + + +def lcm(a: int, b: int) -> int: + return abs(a * b) // gcd(a, b) + + +def clamp(value: float, min_val: float, max_val: float) -> float: + return max(min_val, min(value, max_val))