Python函数检查数字是否为素数

Irk*_*l1_ 2 python

def is_prime(num):
    lst = []
    if num > 1:
        pass
    else:
        return False
    for number in range(0, 1000000+1):
        if str(num) in str(number):
            continue
        elif str(1) in str(number):
            continue
        elif str(0) in str(number):
            continue
        lst.append(number)
    for x in lst:
        if num % num == 0 and num % 1 == 0 and not(num % x == 0):
            return True
        else:
            return False

print(is_prime(9))
Run Code Online (Sandbox Code Playgroud)

我不知道我的代码有什么问题,我找不到解决方案,程序的重点是检查数字是否是素数(素数只能被 1 和它本身整除)。for 循环似乎不起作用或什么的

Syn*_*ase 6

def isprime(n):
    return (all([False for i in range(2,n) if n % i == 0 ]) and not n < 2)
    
print (isprime(0))
print (isprime(1))
print (isprime(2))
print (isprime(3))
print (isprime(9))
print (isprime(10))
print (isprime(13))
Run Code Online (Sandbox Code Playgroud)

输出:

False
False
True
True
False
False
True
Run Code Online (Sandbox Code Playgroud)

或者:

def isprime(n):

    if n < 2: return False

    for i in range(2, n):
        if n % i == 0:
            return False
    else:
        return True
Run Code Online (Sandbox Code Playgroud)

  • 第一个版本认为 2 不是素数,第二个版本认为 0 和 1 是素数 (3认同)