Reputation: 2901
I am given the following function:
def divides(n):
def div(k):
return n % k == 0
return div
I need to determine if the inputted number is prime, but I cannot use any recurssions or loops. Does anyone know how to go about this?
I was told to use sum
, map
, and the divides
function above, but I'm not exactly sure how to do that.
EDIT:
I've tried this, but I'm not sure how to input the k
in div
:
def prime(n):
lst = range(1, n**.5)
result = map(divides(n), lst)
return result
EDIT2:
I am getting an answer, but they are all False
. Any ideas?
def prime(n):
lst = range(1,1+int(n**.5))
result = map(divides(n), lst)
return sum(result) == 0
Upvotes: 0
Views: 170
Reputation: 8520
one liner version
def isPrime(n):
return 0 == sum(map(divides(n),range(2,1+int(n**.5))))
Upvotes: 4
Reputation: 2901
This is the final code that works for me:
def prime(n):
lst = range(1, 1+int(n**.5))
result = map(divides(n), lst)
return sum(result) == 1
Upvotes: 1