题目描述

代码实现
from math import sqrt
start, end = map(int, input().split())
# 判断是不是素数
def isPrime(number):
if number > 1:
if number == 2:
return True
if number % 2 == 0:
return False
for x in range(3, int(sqrt(number) + 1), 2):
if number % x == 0:
return False
return True
return False
# 解题思想是:把素数加入列表,知道扫描到end的位置,然后从start到end切片
result = [2]
i = 3
while True:
if isPrime(i):
result.append(i)
if len(result) == end:
break
i += 1
result = result[start-1:]
# 按照要求输出:每行十个,行末无空格
length = len(result)
if length ==1:
print(result[0])
else:
for c_i in range(length-1):
if (c_i+1)%10==0:
print(result[c_i])
else:
print(result[c_i],end=" ")
if (c_i+2)%10==0:
print(result[c_i+1])
else:
print(result[c_i+1],end="")
结果

真的累了…改正了判断素数的算法,最高19分,解题算法+python自身带bug,发出来给大家做参考,如果有朋友了解如何改进,欢迎留言!
本文分享了一种生成并打印素数的算法,使用Python实现。算法首先判断一个数是否为素数,然后生成素数列表,最后按照特定格式输出。作者在文中提到算法得分19分,并邀请读者提出改进建议。
&spm=1001.2101.3001.5002&articleId=105307606&d=1&t=3&u=2182232a7dbc402fb23772415e83e41f)

被折叠的 条评论
为什么被折叠?



