Reputation: 23
I can't seem to figure out a way to include some multiples into my non prime list. for examples "15" "49" "9" is considered a prime number. Any ideas or corrections ?
number = int(input("Enter a number. "))
non_prime = []
prime = []
def isPrime(number):
for i in range(2,number):
if number % i == 0:
return False
else:
return True
def append(number):
for i in range(1,number+1):
if isPrime(i) == True:
prime.append(i)
else:
non_prime.append(i)
append(number)
print(non_prime)
print(prime)
print (len(prime))
Upvotes: 0
Views: 43
Reputation: 123
if number % i == 0:
return False
else:
return True
Your function returns true for all odd numbers, since it checks if they can be divided by 2 in the 'if' clause, and since they cannot be divided by 2, isPrime
returns True
. You can do the following:
def isPrime(number):
for i in range(2,number):
if number % i == 0:
return False
return True
If a number can exit the for loop, it cannot be divided by any number up to it, so it is a prime number.
Upvotes: 3