#!/usr/bin/env python3 """ Prime Factorization Tool - Compute prime factors of a positive integer. Usage: python prime_factorizer.py Exit 0: success, prints factors Exit 1: error (invalid input, negative number, or 1) """ import sys from typing import List def prime_factors(n: int) -> List[int]: """Return the prime factorization of n as a list of prime factors.""" if n < 2: return [] factors = [] d = 2 while d * d <= n: while n % d == 0: factors.append(d) n //= d d += 1 if n > 1: factors.append(n) return factors def main(): if len(sys.argv) != 2: print("Usage: python prime_factorizer.py ", file=sys.stderr) sys.exit(1) try: n = int(sys.argv[1]) if n < 1: print("Error: Number must be positive", file=sys.stderr) sys.exit(1) if n == 1: print("1 has no prime factors") sys.exit(0) factors = prime_factors(n) if len(factors) == 1: print(f"{n} = {factors[0]} (prime)") else: factor_str = " x ".join(str(f) for f in factors) print(f"{n} = {factor_str}") sys.exit(0) except ValueError: print("Error: Invalid integer", file=sys.stderr) sys.exit(1) if __name__ == "__main__": main()