import sys from typing import List def parseString(filename: str) -> List[List[str]]: with open(filename, 'r') as file: file_content = file.read().strip() ranges_str = file_content.split(',') return [rng.split('-') for rng in ranges_str] def main() -> int: ranges = parseString(sys.argv[1]) print(f"ranges:\n{ranges}") invalids = [] for rng in ranges: start, end = rng for i in range(int(start), int(end) + 1): s = str(i) N = len(s) for j in range(2, N + 1): if not N % j and s[:N // j] * j == s: invalids.append(i) break print(f"invalids:{invalids}") return sum(invalids) if __name__ == "__main__": print(main())