def main(): pass if __name__ == "__main__": # Initialize the results results = { 'sieve_of_eratosthenes': {'time': [], 'space': []}, 'sieve_of_atkin': {'time': [], 'space': []}, 'mixed_sieve': {'time': [], 'space': []}, # 'segmented_sieve_of_eratosthenes': {'time': [], 'space': []}, # FIXME: too slow } for limit in tqdm(limits): print(f"Computing primes up to {limit}...") for func in [sieve_of_eratosthenes, sieve_of_atkin, mixed_sieve]: elapsed_time, mem_usage = measure(func, limit) results[func.__name__]['time'].append(elapsed_time) results[func.__name__]['space'].append(mem_usage) plot_spacetime_efficiency(limits, results)