Reputation: 1
I'm new to programming and python and would like some help with finding the primality of an integer. I've read some approaches to implementing Eratosthene's sieve but most seem a bit too involved (too much code). Here is my approach and the part where I need help is below the #HELP comment:
def prime_number(an_integer):
if (an_integer <= 1):
return False
else:
integer_list = list(range(2, an_integer +1))
#HELP
first_element = integer_list[0]
for each_integer in integer_list:
if (each_integer % first_element == 0) and (each_integer != first_element):
integer_list.remove(each_integer)
second_element = integer_list[1]
for each_integer in integer_list:
if (each_integer % second_element == 0) and (each_integer != second_element):
integer_list.remove(each_integer)
third_element = integer_list[2]
for each_integer in integer_list:
if (each_integer % third_element == 0) and (each_integer != third_element):
integer_list.remove(each_integer)
fourth_element = integer_list[0]
for each_integer in integer_list:
if (each_integer % fourth_element == 0) and (each_integer != fourth_element):
integer_list.remove(each_integer)
print (integer_list)
How do I get rid of the repetition?
Upvotes: 0
Views: 61
Reputation: 49873
To answer your direct question:
for element in integer_list:
for each_integer in integer_list:
if (each_integer % element == 0) and (each_integer != element):
integer_list.remove(each_integer)
(I'm assuming that you meant for fourth_element
to be integer_list[3]
.)
Note, however, that you now have 2 loops over integer_list
, inside of which you removing elements from that list, which will likely cause you trouble.
Upvotes: 1