在Python中,求素数可以通过多种方法实现,以下是几种常见的方法:
方法一:穷举法
def is_prime(num):if num < 2:return Falsefor i in range(2, int(math.sqrt(num)) + 1):if num % i == 0:return Falsereturn Truenum = 100 输入一个数字if is_prime(num):print(f"{num} 是一个质数")else:print(f"{num} 不是一个质数")
方法二:筛选法(埃拉托斯特尼筛法)
def sieve_of_eratosthenes(n):primes = [True] * (n + 1)primes = primes = Falsefor i in range(2, int(math.sqrt(n)) + 1):if primes[i]:for j in range(i * i, n + 1, i):primes[j] = Falsereturn [i for i in range(2, n + 1) if primes[i]]print(sieve_of_eratosthenes(100)) 输出小于等于100的所有素数

方法三:质数生成器
def prime_generator(n):yield 2for i in range(3, n + 1, 2):if all(i % j != 0 for j in range(2, int(i0.5) + 1)):yield ifor prime in prime_generator(100):print(prime)
方法四:判断一个数是否为素数
def is_prime(num):if num < 2:return Falsefor i in range(2, int(math.sqrt(num)) + 1):if num % i == 0:return Falsereturn Truenum = int(input("输入一个数字:"))if is_prime(num):print(f"{num} 是一个质数")else:print(f"{num} 不是一个质数")
以上方法都可以用来判断一个数是否为素数,或者生成一定范围内的所有素数。你可以根据具体需求选择合适的方法。需要注意的是,对于非常大的数,可能需要考虑更高效的算法来减少计算时间
