Syntax 如何求素数

Syntax 如何求素数,syntax,python-3.6,Syntax,Python 3.6,如何找到素数? 素数是比一大的数,并且只能被它们自己和一整除。确定数字是否为素数的一种方法如下: ->如果数字小于2,则返回False ->如果数字为2,则返回True ->对于i的每个值,其中i>=2和i返回真值 我当前的代码: def is_prime(number): if number == 2: return True elif number < 2: return False else: for i in

如何找到素数? 素数是比一大的数,并且只能被它们自己和一整除。确定数字是否为素数的一种方法如下:

->如果数字小于2,则返回False

->如果数字为2,则返回True ->对于i的每个值,其中i>=2和i返回真值

我当前的代码:

def is_prime(number):
    if number == 2:
        return True
    elif number < 2:
        return False
    else:
        for i in range(2, number):
            if number % i == 0:
                return False
            else:
                return True
def main():
    print(is_prmie(1))
    print(is_prmie(4))
    print(is_prmie(7))
def是素数(数字):
如果数字==2:
返回真值
elif编号<2:
返回错误
其他:
对于范围内的i(2,编号):
如果编号%i==0:
返回错误
其他:
返回真值
def main():
印刷品(是印刷品(1))
印刷品(是印刷品(4))
印刷品(是印刷品(7))
有些语法问题我不知道怎么解决。 有人能帮忙吗?
谢谢你,塔塔

您需要调用
main()
并正确写入
is\u prime()

def is_prime(number):
if number == 2:
    return True
elif number < 2:
    return False
else:
    for i in range(2, number):
        if number % i == 0:
            return False
        else:
            return True
def main():
    print(is_prime(1))
    print(is_prime(4))
    print(is_prime(7))
main()
def是素数(数字):
如果数字==2:
返回真值
elif编号<2:
返回错误
其他:
对于范围内的i(2,编号):
如果编号%i==0:
返回错误
其他:
返回真值
def main():
打印(是素数(1))
打印(是素数(4))
打印(是素数(7))
main()

方法调用时is_prime的拼写错误。另外,在最后还没有调用main方法

小的改进:

for i in range(2, number):
这一行可以如下所示,因为我们不需要检查数字在其一半后的整除性:

for i in range(2, (number/2)):

e、 g.对于检查24是否为素数,我们只需要检查12,因为它永远不会被大于12的数字整除。

我建议如下:

from math import sqrt

def is_prime(x):
  if x < 2:
    return False

  if x % 2 == 0:
    return x == 2

  i = 3
  while i <= sqrt(x):
    if x % i == 0:
      return False
    i += 2

  return True
从数学导入sqrt
def是_素数(x):
如果x<2:
返回错误
如果x%2==0:
返回x==2
i=3

当我进行小型优化时,您可以停在
sqrt(number)
(由于这是一个缓慢的操作,请确保预先计算它)。例如:
100=50*2
,但在到达
50
之前很久,您就已经选中了
2
。可能存在重复项
        <?php

        // PHP code to check wether a number is prime or Not 
        // function to check the number is Prime or Not 
        function primeCheck($number){ 

            if ($number == 1 || $number == 2 || $number % 2 !== 0) {
                 echo "Prime"; 
            }

            else if ($number % 2 == 0) 
            {
                echo "Not Prime"; 
            }
          } 

        echo primeCheck(5);