【发布时间】:2016-12-01 21:18:28
【问题描述】:
我正在制作一个查找素数的程序。要求用户提供一个大于 2 (n) 的数字,然后程序创建一个从 2 开始到用户的数字 (n) 结束的列表。在我的程序中,我应该将一个名为 current 的变量设置为 2,然后在列表中循环查找电流的倍数并删除它们。在循环结束时,我将 1 添加到 current 并且程序再次循环执行与以前相同的操作。每次都会打印该列表。我的程序运行正常(我正在使用数字 10 作为 n 进行测试),当它到达末尾时,即使它应该被删除,也会留下 10。请帮忙。
这是我的代码:
while True:
global n
n = int ( input ( "Please enter a number larger than 2. " ) )
if n > 2:
break
else:
print ( "Your number is not larger than 2." )
continue
current = 2
myList = list ( range ( 2, n + 1 ) )
while current < n:
if current == []:
break
for i in reversed ( range ( len( myList )-1 ) ):
if myList[i] % current == 0 and myList[i] != current and ( myList[i] / current ).is_integer(): myList.pop(i)
print ( myList )
current = current + 1
【问题讨论】:
-
这似乎是一种非常复杂的寻找素数的方法。
-
@DejaVuSansMono 这是一个很常见的家庭作业提示。
-
@TemporalWolf 哦。我不知道。我要说的是,平方根和检查显然更容易。但如果这是家庭作业并且必须以这种方式完成,那就是这样。
-
@TemporalWolf 下次我会这样做。由于我是新来的,我可以检查它,但不会显示我有。
标签: python python-3.x