def is_prime(n: int) -> bool: if n < 2: return False for i in range(2, n // 2 + 1): if n % i == 0: return False return True def next_prime(n: int) -> int: return n + 1 if is_prime(n + 1) else next_prime(n + 1) def next_prime_iterative(n: int) -> int: num = n + 1 while not is_prime(num): num += 1 return num def prime_factorize(n: int) -> list[int]: prime_factors: list[int] = [] num = n prime = 2 while num > 1: if num % prime == 0: prime_factors.append(prime) num //= prime prime = 2 else: prime = next_prime(prime) return prime_factors if __name__ == "__main__": prime_factorize(10)