python语言实现素数判断及打印素数的几种方法

一、素数的定义

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

二、素数判断

方法一:

def sushu(a):
    if a <= 1:
        print(f"{a}不是素数")
    else:
        for i in (2, a + 1):
            if a % i == 0:
                break
        if i >= a:
            print(f"{a}是素数")
        else:
            print(f"{a}不是素数")

方法二:

def sushu2(b):
    if b <= 1:
        print(f"{b}不是素数")
    else:
        j = 2
        # 素数是除了一和本身以外不能被其他任何整数整除的整数
        while j <= b - 1:
            # 只要有一个能被整数的就不是素数
            if b % j == 0:
                break
            # 依次除以2,3,4,5,,,m-1
            j = j + 1
        if j > (b - 1):
            print(f"{b}是素数")
        else:
            print(f"{b}不是素数")

三、打印素数

方法一:

1、打印指定范围内的素数

def sushu3(c):
    import math
    m = 2
    List = []
    while m < c:
        j = 2
        # 只要从2判断到根号m,若m不能被其中的任何一个数整除,则m为素数
        while j <= math.sqrt(m):
            if m % j == 0:
                break
            j = j + 1
        if (j > math.sqrt(m)):
            List.append(m)
        m = m + 1
    print(f"{c}以内的素数:{List}")

    
 # 调用方法sushu3方法,打印100以内的素数
if __name__ == '__main__':
    sushu3(100)

方法二:

2、打印指定区间内的素数

def sushu4():
    Min = int(input("请输入起始值:"))
    Max = int(input("请输入终止值:"))
    List = []
    # 循环遍历指定区间内的数
    for i in range(Min, Max + 1):
        if i > 1:
           # 除了1和本身以外的数,如果能被除则break退出
            for j in range(2, i):
                if (i % j) == 0:
                    break
            # 若不能被1和本身的数除则追加到List列表
            else:
                List.append(i)
    print(f"{Min}~{Max}区间内的素数有:{List}")

你可能感兴趣的:(python,python,算法,开发语言)