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