import sys def generate_subfunction(file, start, end): file.write(f"int is_even_{start}_{end}(int num) {{\n") conditions = "" for i in range(start, end + 1): even_check = "1" if i % 2 == 0 else "0" conditions += f"(num == {i}) ? {even_check} : " conditions += "0" file.write(f" return {conditions};\n") file.write("}\n\n") def generate_c_file(max_number): with open("is_even.c", "w") as file: # Write the headers file.write("#include \n\n") # Generate subfunctions in chunks of 10,000 for i in range(1, max_number + 1, 10000): start = i end = min(i + 9999, max_number) generate_subfunction(file, start, end) # Generate the main is_even function file.write("int is_even(int num) {\n") for i in range(1, max_number + 1, 10000): start = i end = min(i + 9999, max_number) file.write(f" if (num >= {start} && num <= {end}) return is_even_{start}_{end}(num);\n") file.write(" return 0;\n") file.write("}\n\n") # Write the main function file.write("int main() {\n") file.write(" for (int i = 1; i <= {0}; i++) {{\n".format(max_number)) file.write(" printf(\"%d is %s\\n\", i, is_even(i) ? \"even\" : \"odd\");\n") file.write(" }\n") file.write(" return 0;\n") file.write("}\n") if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python generate_c.py ") else: max_number = int(sys.argv[1]) generate_c_file(max_number)