Python Primes Array混乱

时间:2013-04-23 15:15:23

标签: python math primes

我对这个python prime检查功能有一个小问题。这真的很愚蠢,但[2]中的for n in [2]做了什么?

我理解检查素数的公式,没问题,但无法弄清楚[2]是什么。

来自:http://en.wikibooks.org/wiki/Python_and_Math

from math import ceil
def prime(input):
    for n in [2] + range(3, int(ceil(input**0.5)), 2):
        if input%n == 0:
            return False
    return True

感谢您回答我的愚蠢问题。

1 个答案:

答案 0 :(得分:1)

这只是列表添加:

>>> range(3, 10, 2)
[3, 5, 7, 9]
>>> [2] + range(3, 10, 2)
[2, 3, 5, 7, 9]

即。他们想用2来检查可分性,但显然没有必要用4,6,8来检查可分性......所以在这个操作中它将“前置”2加到奇数列表的开头。

顺便说一下,这个函数被破坏了 - 它返回prime(2) == Falseprime(1) == True这两个都是错误的。