我获得以下功能:
def divides(n):
def div(k):
return n % k == 0
return div
我需要确定输入的数字是否为素数,但我不能使用任何递归或循环。有谁知道怎么回事?
有人告诉我使用上面的sum
,map
和divides
函数,但我不确定该怎么做。
修改
我试过这个,但我不确定如何在k
中输入div
:
def prime(n):
lst = range(1, n**.5)
result = map(divides(n), lst)
return result
EDIT2:
我得到了答案,但他们都是False
。有什么想法吗?
def prime(n):
lst = range(1,1+int(n**.5))
result = map(divides(n), lst)
return sum(result) == 0
答案 0 :(得分:4)
一个班轮版
def isPrime(n):
return 0 == sum(map(divides(n),range(2,1+int(n**.5))))
答案 1 :(得分:1)
这是适用于我的最终代码:
def prime(n):
lst = range(1, 1+int(n**.5))
result = map(divides(n), lst)
return sum(result) == 1