我是Python的初学者,但仍然有点困惑。我打印出素数,但现在我被困在试图计算出已输出的素数,请帮忙。
import math
n= int (input("Enter an Integer: "))
for j in range(2, n+1):
if all(j%i!=0 for i in range(2,int(math.sqrt(j))+1)):
print (j)
count = 0
for j in range(2, n+1):
if j is True:
len(j)
print(str(len(j)))
答案 0 :(得分:1)
我假设您的目标是打印0到n之间的所有素数(由用户作为输入)并计算它们。你所要做的就是宣布'计算'在第一个循环之前,每次找到素数时都增加它。代码看起来像这样:
import math
n= int (input("Enter an Integer: "))
count = 0
for j in range(2, n+1):
if all(j%i!=0 for i in range(2,int(math.sqrt(j))+1)):
print (j)
count = count + 1
print (" Number of prime numbers is : " , count)
你的代码有什么问题,在第二个循环for j in range(2, n+1):
中,j是一个整数,if j is True:
总是假的,因为j不是' boolean'值。因此永远不会执行print(str(len(j)))
。
答案 1 :(得分:0)
您只需在代码中添加一个计数器即可。请仔细阅读下面的代码,看看如何做到这一点。
import math
n= int (input("Enter an Integer: "))
count = 0
for j in range(2, n+1):
if all(j%i!=0 for i in range(2,int(math.sqrt(j))+1)):
print (j)
count = count + 1
print "Number of prime numbers between 1 and " + str(n) + " is " + str(count)