我是Python的初学者,我需要帮助修复我创建的这段代码。贝西卡利,我下面有我的代码。在import math
def generate_p(p, Count, X, List):
while Count <= X:
isprime = True
for x in range(2, int(math.sqrt(p)) + 1):
if p % x == 0:
isprime = False
if isprime:
Count += 1
print p
P.append(p)
p += 1
if __name__ == "__main__":
p = 2
count = 1
X = int(raw_input('number: '))
List = []
generate_p(p, count, X, List)
基本上,这个函数是可以工作的,但是,它不能像我希望的那样工作。首先,我将说明函数的逻辑如何工作,因为代码的第二部分只是变量和声明函数。
当变量计数小于或等于X时,is prime为真,只要p(被测试的数字)可以进入每个X而没有余数(X在2到p的平方根的范围内)。如果它是质数,在计数中加1,打印素数,把它也加到列表中,然后加1到p,即被测试的数字。如果不是质数,则只需在p上加1。这样一直持续到Count大于X时,代码停止。
你可能已经注意到了,有一个收集质数的列表,但是,这大部分都是未使用的。我想做的,但我不知道怎么做,就是修复代码的这一部分
^{pr2}$
所以x在2和p+1的平方根的范围内,但是,我只希望x是p列表中那个范围内的数字。有人能帮我做这件事吗,也许还能指出这段代码中的其他事情吗?在