数字素数? (没有递归或循环)

时间:2016-01-28 21:36:38

标签: python python-3.x

我获得以下功能:

def divides(n):
    def div(k):
        return n % k == 0
    return div

我需要确定输入的数字是否为素数,但我不能使用任何递归或循环。有谁知道怎么回事?

有人告诉我使用上面的summapdivides函数,但我不确定该怎么做。

修改

我试过这个,但我不确定如何在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

2 个答案:

答案 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