【发布时间】:2021-06-14 14:49:53
【问题描述】:
我想要一个脚本来: a) 检查用户定义范围内的数字是否为素数 b) 打印检查结果 c)打印检查的数字数量以及这些数字中有多少是素数 d) 打印最后一个素数
这是我目前所拥有的:
lower = int(input("Lower boundry: "))
upper = int(input("Upper boundry: "))
for n in range(lower, upper + 1):
if (n <= 1):
print(n, "error")
elif (n > 1):
for x in range(2, n):
if ((n % x) == 0):
print(n, "not prime, because", x, "*", int(n/x),"=", n)
break
else:
print(n, "prime")
last = [n]
print("Checked", n, "numbers, of which","XXX","were prime.")
print("Last prime number found was", *last)
问题:
-
我使用的工具给了我一个错误。可以说,我检查数字 1-10。在 1 上,我收到一条通知,指出 1 不是素数(如预期的那样,如 n
-
为了检查指定范围内的素数 - 我应该使用列表来存储 for 循环中生成的值吗?该材料将在以后的会议中涵盖列表,所以我猜我打算使用其他方法。但是可以说我想使用列表。是不是类似:
list=[] for y in [1,10] : for z in [0,1,2,3] : x=y+z list.append(x)
以及在XXX占位符为ATM的地方使用len(list)?
编辑:让 c) 和 d) 工作 - 使用列表作为值的存储。为 d) 打印列表中的最后一个值,并为 c) 使用列表的长度。修复了在下面的 cmets 中向我指出的缩进问题。仍然无法让代码正常运行。在 I 中,将 1 和 10 作为界限,程序将 1 识别为非质数,将 2 识别为质数,然后给出错误。错误文本是:“不正确的输出:您的程序打印了“prime3”,但应该打印了“prime”。“不太确定这是怎么回事。
【问题讨论】:
-
首先,永远不要使用像
list这样的内置函数和关键字。如果您想将任何内容转换为列表,这将导致一些未来的问题