我试着用布尔函数打印从1到100的所有素数。
下面是我正在工作的代码。
for n in range(1,101):
status = True
if n < 2:
status = False
else:
for i in range(2,n):
if n % i == 0:
status = False
if status:
print(n, '', sep=',', end='')
但当我将代码放入函数并运行模块时,shell上没有任何打印内容。 我做错了什么?
is_prime():
for n in range(1,101):
status = True
if n < 2:
status = False
else:
for i in range(2,n):
if n % i == 0:
status = False
return status
if is_prime():
print(n, '', sep=',', end='')
下面是程序的输出。
如何防止最后一个逗号打印?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,
我认为您最好的解决方案是附加一个数组,它修复了逗号问题,并且更快/更优化。如果需要的话,你可以去掉这些值,把它们存储到文件中。祝你好运!
输出:
请参阅我对堆栈溢出#11619942“print series of prime numbers in python”的评论和其他内容
它完成了同样的任务,但却要求用户输入:
如果你只想解出你输入的数字,那就把这个部分去掉:
并将范围从num1、num2改为1和100,例如:
试试这个
output
是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
相关问题 更多 >
编程相关推荐