from tqdm.auto import tqdm from plotting import plot_measure_efficiency from primefinding import ( sieve_of_eratosthenes, segmented_sieve_of_eratosthenes, sieve_of_atkin, mixed_sieve ) from profiling import measure def main(): M = [sieve_of_eratosthenes, segmented_sieve_of_eratosthenes, sieve_of_atkin, mixed_sieve] N = list(range(10, 1_000_000_000, 10)) efficiency = {closure.__name__: {"elapsed": [], "space": []} for closure in M} for n in tqdm(N, desc="prime finding"): for closure in M: elapsed, space = measure(closure, n) efficiency[closure.__name__]["elapsed"].append(elapsed) efficiency[closure.__name__]["space"].append(space) plot_measure_efficiency(N, efficiency) if __name__ == "__main__": main()