Jan-15-2022, 06:33 PM
(This post was last modified: Jan-15-2022, 06:33 PM by deanhystad.)
This code was close to working.
def prime_eratosthenes(lim): prime_list = [] for i in range(2, lim+1): if i not in prime_list: print (i, end = ' ') for j in range(i*i, lim+1, i): prime_list.append(j) return prime_list print(prime_eratosthenes(10))This prints primes in the correct range, but it does not return these values. Why not? Why are you returning prime_list? This is a list of values that are used to identify primes, not a list of primes. In fact, prime_list is a list of numbers that are not primes as indicated by "if i not in prime_list:" being the test to determine if i is prime.
def prime_eratosthenes(lim): primes = [] not_primes = [] for i in range(2, lim+1): if i not in not_primes: primes.append(i) for j in range(i*i, lim+1, i): not_primes.append(j) return primes print(prime_eratosthenes(10))