Python Prime数字不会返回

时间:2015-05-11 02:24:40

标签: python

我知道此问题之前已经以各种形式得到了回答。但是我试图让我按照我写的方式工作,所以当我解决编程问题时,我可以看到我做错了什么。我试图制作一个打印/返回范围内所有素数的函数。但是我写的程序不打印任何东西。我尝试制作流程图并评论一切。这对我有意义,但不会工作。任何建议表示赞赏!

def isPrime (n):                       ## we define a function
    primeList = [2, 3]                 ## 2 is the only even prime number
    i = 4
    while 3<i<n:                       # i is assigned to numbers 3 to n
        if i%2 == 1:                   # if odd do the following
            if i%3 != 0:               
                primeList.append(i)    # add  to prime list
            else:
                i%2 == False
        else:
            i = i + 1                 # since i%2 == 0 we restart loop
    return primeList

2 个答案:

答案 0 :(得分:1)

如果i += 1,您错过了相当重要的i % 2 == 1

以这种方式尝试:

def isPrime (n):                       ## we define a function
    primeList = [2, 3]                 ## 2 is the only even prime number
    i = 4
    while 3<i<n:                       # i is assigned to numbers 3 to n
        if i%2 == 1:                   # if odd do the following
            if i%3 != 0:               
                primeList.append(i)    # add  to prime list
            else:
                i%2 == False

        i = i + 1                 # since i%2 == 0 we restart loop
    return primeList

另外,请记住,此功能实际上并不会生成素数列表。

答案 1 :(得分:0)

函数应该只做一件事,所以我会做两个函数:

  • scrollToRowAtIndex:(NSInteger)index animated:(BOOL)animated
  • def get_primes_in_range(start, stop):

函数名称应该告诉您它的确切功能。在您的代码中,该函数被命名为错误。它被称为def is_prime(number):,但它不会检查数字是否为素数,它会返回素数列表。

我们的功能应如下所示:

isPrime

这不是超级快,但它确实起作用。