|
|
|
|
@ -0,0 +1,75 @@
|
|
|
|
|
质数计算程序文档
|
|
|
|
|
|
|
|
|
|
功能概述
|
|
|
|
|
|
|
|
|
|
本程序用于计算并输出前100个质数,采用高效的算法实现质数判断和批量输出功能。
|
|
|
|
|
|
|
|
|
|
代码实现
|
|
|
|
|
|
|
|
|
|
质数判断函数
|
|
|
|
|
|
|
|
|
|
def is_prime(n):
|
|
|
|
|
"""判断一个数是否为质数"""
|
|
|
|
|
if n <= 1:
|
|
|
|
|
return False
|
|
|
|
|
if n == 2:
|
|
|
|
|
return True
|
|
|
|
|
if n % 2 == 0:
|
|
|
|
|
return False
|
|
|
|
|
for i in range(3, int(n**0.5) + 1, 2):
|
|
|
|
|
if n % i == 0:
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
算法特点:
|
|
|
|
|
• 排除小于等于1的数字
|
|
|
|
|
|
|
|
|
|
• 单独处理数字2(最小的质数)
|
|
|
|
|
|
|
|
|
|
• 排除所有偶数(除了2)
|
|
|
|
|
|
|
|
|
|
• 只需检查到√n的奇数因子
|
|
|
|
|
|
|
|
|
|
前N个质数输出函数
|
|
|
|
|
|
|
|
|
|
def print_first_n_primes(n):
|
|
|
|
|
"""打印前n个质数"""
|
|
|
|
|
count = 0
|
|
|
|
|
num = 2
|
|
|
|
|
primes = []
|
|
|
|
|
|
|
|
|
|
while count < n:
|
|
|
|
|
if is_prime(num):
|
|
|
|
|
primes.append(num)
|
|
|
|
|
count += 1
|
|
|
|
|
num += 1
|
|
|
|
|
|
|
|
|
|
# 打印结果,每10个一行
|
|
|
|
|
for i in range(0, len(primes), 10):
|
|
|
|
|
print(", ".join(map(str, primes[i:i+10])))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
输出格式:
|
|
|
|
|
• 每行显示10个质数
|
|
|
|
|
|
|
|
|
|
• 质数之间用逗号和空格分隔
|
|
|
|
|
|
|
|
|
|
• 整齐的表格化显示
|
|
|
|
|
|
|
|
|
|
程序执行
|
|
|
|
|
|
|
|
|
|
# 输出前100位质数
|
|
|
|
|
print("前100位质数为:")
|
|
|
|
|
print_first_n_primes(100)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
输出结果
|
|
|
|
|
|
|
|
|
|
程序将输出前100个质数,格式如下:
|
|
|
|
|
|
|
|
|
|
前100位质数为:
|
|
|
|
|
2, 3, 5, 7, 11, 13, 17, 19, 23, 29
|
|
|
|
|
31, 37, 41, 43, 47, 53, 59, 61, 67, 71
|
|
|
|
|
73, 79, 83, 89, 97, 101, 103, 107, 109, 113
|
|
|
|
|
...
|