[英]Is number prime? (no recursion or loops)
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. 我被告知要使用上述的
sum
, map
和divides
函数,但是我不确定如何做到这一点。
EDIT: 编辑:
I've tried this, but I'm not sure how to input the k
in div
: 我已经尝试过了,但是我不确定如何在
div
输入k
:
def prime(n):
lst = range(1, n**.5)
result = map(divides(n), lst)
return result
EDIT2: EDIT2:
I am getting an answer, but they are all False
. 我得到一个答案,但它们全都
False
。 Any ideas? 有任何想法吗?
def prime(n):
lst = range(1,1+int(n**.5))
result = map(divides(n), lst)
return sum(result) == 0
one liner version 一个班轮版本
def isPrime(n):
return 0 == sum(map(divides(n),range(2,1+int(n**.5))))
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.