I finished Beginner Python3, and felt I had a pretty good grasp of the concepts. I succeeded in completing the Prime Number Finder Python Code Challenge after several hours, but it legit took hours. I was so happy, until I compared my code with other users’.

I’m wordy in real life, I guess it’s no surprise it takes twice the code for me than it takes for my peers, but I’m a little concerned at HOW different my stuff is.

All advice on the code itself, drawing straighter lines conceptually, less is more, or just some kind words are all appreciated. Thank you.

def prime_finder(n):
# Write your code here
n = int(n)
outgoing_primes = []
######FUNCTIONS######
# 6K +- 1 Theory Populator
def populator(n):
for number in range(1, n):
temp_no = (6*number)
lo_hi = [(temp_no - 1), (temp_no + 1)]
lo = lo_hi[0]
hi = lo_hi[1]
lo_hi_tester(lo, hi)
if hi >= n:
break
# pass/fail prime number tester
def lo_hi_tester(lo, hi):
# to test low input value
lo_test = 0
for prime in outgoing_primes:
if lo % prime == 0:
lo_test += 1
if lo_test == 0:
outgoing_primes.append(lo)
# to test high input values
hi_test = 0
for prime in outgoing_primes:
if hi % prime == 0:
hi_test += 1
if hi_test == 0:
outgoing_primes.append(hi)
# output trimmer
def popper(list_name, index):
if index <= list_name[-1]:
list_name.pop()
#########CODE#########
if n < 2:
return "There are no prime numbers in that range."
elif n == 2:
outgoing_primes += [2]
elif n < 5:
outgoing_primes += 2, 3
else:
outgoing_primes += [2, 3, 5]
populator(n)
while outgoing_primes[-1] > n:
popper(outgoing_primes, n)
return outgoing_primes

Problems like efficient complexity for finding prime numbers fall under the category of numerical methods… which you might find in a maths curriculum before a c.s. one.
Since it’s a different discipline altogether, the more optimal answers might seem like very foreign and arbitrary. Usually the people that do these problems are the ones that seek them specifically. So don’t be disheartened!

Hello!
I wouldn’t get too downhearted. Yours looks like a much more nuanced answer, and I’d wager will run a lot quicker than a fair few that have been posted.
There’s probably some bits you could tweak, but that’s part of the fun.
As I mentioned in my entry, I’ve done this or something like it a few times and usually end up with something different depending on how I attack it.