Python 素数乘以3显示为素数

Python 素数乘以3显示为素数,python,Python,我试图用Python创建一个函数来检查给定的数字是否为素数数,因此我编写了以下代码: def is_prime(x): if x<2: return False elif x==2: return True else: for n in range(2,x): if (x%n)==0: return False else:

我试图用Python创建一个函数来检查给定的数字是否为素数数,因此我编写了以下代码:

def is_prime(x):
    if x<2:
        return False
    elif x==2:
        return True
    else:
        for n in range(2,x):
            if (x%n)==0:
                return False
            else:
                return True
def为素数(x):

如果x,因为在循环的第一次迭代中返回
。在循环耗尽之前,您无法知道某个对象是素数。因此,在迭代完成之前不要返回
True

def is_prime(x):
    if x<2:
        return False
    elif x==2:
        return True
    else:
        for n in range(2,x):
            if (x%n)==0:
                return False
        return True
def为素数(x):

如果x发生这种情况,因为您在循环的第一次迭代中从
is_prime
返回。测试
x
是否可以除以2,如果可以,则返回
True
,否则返回
False

从循环中删除
else
子句,并在其结束后返回
True

def is_prime(x):
    if x<2:
        return False
    elif x==2:
        return True
    else:
        for n in range(2,x):
            if (x%n)==0:
                return False
        return True
def为素数(x):

如果x一个更有效的方法将只迭代到x的平方根

import math;
def isPrime(x):
    if x < 2:
        return False;
    elif x == 2:
        return True;
    else:
        for n in range(2, int(math.sqrt(x))+1):
            if x%n == 0:
                return False;
        return True;

# Test the method for first 50 natural numbers
for i in range(51):
    if isPrime(i):
        print i;
导入数学;
def iPrime(x):
如果x<2:
返回False;
elif x==2:
返回True;
其他:
对于范围(2,int(数学sqrt(x))+1)内的n:
如果x%n==0:
返回False;
返回True;
#测试前50个自然数的方法
对于范围(51)内的i:
如果是(i):
印刷品一;

这对您来说是一本不错的读物: