def xPrimes(x) :
y = 2
while y < x :
if isItPrime(y) == True :
y += 1
y += 1
print(primes)
我是python的初学者,我无法让程序执行所需的操作。我也不完全了解我的程序的功能。当我执行xPrimes(5)时,它给了我[2,3,5]而不是[2,3,5,7,11]。我的代码将所有素数打印到x而不是x素数。我怀疑我需要一个计数器,但不知道在哪里实现。
答案 0 :(得分:2)
您只需要继续生成素数,直到您拥有x
个素数为止。如果您要返回结果列表,则计数器就是该列表的长度。
def xPrimes(x: int) -> List[int]:
primes: List[int] = []
y = 1
while(len(primes) < x):
y += 1
if isItPrime(y):
primes.append(y)
return primes
请注意,y
是质数,x
是质数,它们完全是 个不同的数字。 :)
答案 1 :(得分:0)
这里是素数?
您必须将x视为计数器,并且不要与y进行比较,因为y是素数而不是计数器
相反,您可以执行以下操作
def xPrimes(x) :
y = 2
index = 0
while index < x :
if isItPrime(y) == True :
y += 1
index+= 1
y += 1
print(primes)
您可以看到,我使用索引作为计数器,并在得到素数时将其递增
答案 2 :(得分:0)
家庭作业是一次冒险,也是一次尝试的机会!
首先,您问为什么 这使我感到困惑,因为您无法获得输出 我认为您想将代码和含义从 祝您有美好的一天!继续编码!记笔记。xPrimes(5)
给您最多5个变量。当y def primes_up_to_number(stop_at) :
testing_number = 2
while testing_number < stop_at :
if isItPrime(testing_number) == True :
testing_number += 1
testing_number += 1
print(primes)
[2, 3, 5]
。当testing_number
为2时,向其中添加一个,然后在再次检查isItPrime
并检查4之前再次添加一个。我假设isItPrime
更新了一些全局数组primes
。 stop_at
更改为number_of_primes
。如果是这样,则应在函数启动时设置一个计数器number_of_primes_found = 0
,并在每次找到素数时向其添加一个计数器。您应该在while
循环中更改表达式以保持循环,直到找到该素数为止。