查找素数和素数的计数 - Python

时间:2017-06-22 17:30:51

标签: python

我是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)))

2 个答案:

答案 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)