简体   繁体   English

数字是素数吗? (无递归或循环)

[英]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. 我被告知要使用上述的summapdivides函数,但是我不确定如何做到这一点。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM