def isPrime(n):
for i in range(2,n):
if n % i == 0:
return False
return True
def prime_finder(n):
numbers = list(range(2, n+1))
primes = []
for i in numbers:
if isPrime(i):
primes.append(i)
return primes
print(prime_finder(11))
Hey goran_021,
How does 2 get added to the primes list? Obviously 2 % 2 == 0 and 2 % 1 == 0. How do lines 3, 4 and 5 account for that?
I appreciate this isn’t specific to your code but I understood yours the most. Any help would be much appreciated.
Thanks
Hi.
See here :
for i in range(2,n):
if n % i == 0:
If we talk about num 2, then it’s range(2,2), and range from 2 to 2 is none. Because range goes from start(2) to end minus one(2 - 1), and that would be range from 2 to 1 which doesn’t exist so result is none instead of zero you would normally expect.
Take care:)
You are a legend, thank you so much!
1 Like
big code
def prime_finder(n):
foo = []
def isComposite(n2):
x = [True]
for i in range(1, n2 + 1):
if n2 % i == 0 and not(i == 1 or i == n2):
x.append(False)
return not(x[-1])
for i in range(1, n + 1):
if not(isComposite(i)) and not(i == 1 or i == 0):
foo.append(i)
return foo
for i2 in range(40):
print("{} {}\n".format(i2, prime_finder(i2)))
def prime_finder(n):
primes = []
for i in range(2,n+1):
print(i)
flag = False
for x in range(2,i):
if flag:
continue
if i % x == 0:
flag = True
if not flag:
primes.append(i)
return primes
print(prime_finder(11))
Using list comprehension
def prime_finder(n):
num_list = [num for num in range(2, n+1) if num>1 if all(num % y != 0 for y in range(2, num))]
return num_list
print(prime_finder(11))
from math import factorial
def prime_finder(n):
# Write your code here
primes = []
for nums in range(2, n+1):
fact = factorial(nums-1)+1
if fact%nums == 0:
primes.append(nums)
return primes
print(prime_finder(11))
here’s my solution using wilsons’s theorem 
1 Like
def prime_finder(n):
# Write your code here
def is_prime(m):
for j in range(2,m):
if m%j == 0: return False
return True
prime_list = []
for i in range(2, n+1):
if is_prime(i): prime_list.append(i)
return prime_list
print(prime_finder(100))
def prime_finder(n):
# Write your code here
prime_n = []
for i in range(2,n+1):
prime_test = []
for j in range(2,i+1):
if i%j == 0:
prime_test.append(j)
if len(prime_test) == 1:
prime_n.append(i)
return prime_n
print(prime_finder(11))