python check prime,卡在一点上

时间:2014-07-31 09:15:14

标签: python computer-science primes

这是我们老师给我们的问题:

“确定数字是否为素数的一种方法如下:

如果数字< 2,然后返回False

如果数字为2,则返回True

对于i的每个值,其中i> = 2且i <1。号:

如果我将数字均分,则返回False

返回True“

我已经设法完成了大部分工作,但是当它说'对于i的每个值,其中i&gt; = 2且i&lt;数:' 我如何在代码中写这个?

if number < 2:    
    return False
if number == 2:
    return True
?????????
    if i%2 == 0:
        return False
return True

3 个答案:

答案 0 :(得分:1)

哟需要一个循环来检查所有数字,比检查的数字少2到1。有更好的方法(例如只检查数字的平方根),但简单的算法将是:

def isPrime (n):
    if n < 2:
        return False
    for x in range (2, n):
        if n % x == 0:
            return False
    return True

因此,就您需要添加到代码中的内容而言:

  • 循环迭代一些变量,从两个变量到一个变量,小于数字。
  • 使用变量而不是硬编码2检查模数。

答案 1 :(得分:0)

您需要从2开始循环到数字

for i in range(2,number)
    if number%i == 0:
          return false

答案 2 :(得分:0)

def isprime(num):
 #this is the part you are missing
 for divider in range(2,num):
   if num%divider == 0:
     return False
     #end of missing part

 return not num%2 == 0 or num==2 or num==0



for i in range(0,200):
    if isprime(i): print i, isprime(i)