Python编写程序,求出最小的100个素数

如题所述

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @FileName  :Get_100_PrimeNumber.py
# @Time      :2021/3/26 8:43
# @Author    :Storm_duke
"""
获取前100个素数
"""
import time


def is_prime(n):
"""判断一个正整数是否为素数"""
if isinstance(n, (int, float)):
try:
if n == 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
except Exception as ex:
return ex
else:
return False


if __name__ == "__main__":
start = time.perf_counter()
prime_list = []
t = 1
while t >= 1:
if is_prime(t):
prime_list.append(t)
if prime_list.__len__() == 100:
break
t += 1
print("前100的素数是:{}".format(prime_list))
end = time.perf_counter()
print("耗时:{}".format(end - start))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-26

除了2,3,其他素数都在6的倍数左右,用6的倍数步进可以减少循环的次数,素数判断时按照2-开方也可以减少循环的次数。

第2个回答  2021-03-25

def isPrime(n):

    if n <= 1:

        return False

    i = 2

    while i * i <= n:

        if n % i == 0:

            return False

        i += 1

    return True


li = []

n = 0

m = 1

while n < 100:

    if isPrime(m):

        li.append(m)

        n += 1

    m += 1


print(li,len(li))