Python 对于涉及质数跟踪和连续加法的问题,我的代码是否正确?
问题:假设函数的可用性是_素数。假设变量n与正整数相关联。写下所需的语句,找出在超过n之前,可以添加多少素数,从2开始,以递增的顺序依次增加更高的素数[2,3,5,7,11,13,…]。将此数字与变量k关联 守则:Python 对于涉及质数跟踪和连续加法的问题,我的代码是否正确?,python,primes,Python,Primes,问题:假设函数的可用性是_素数。假设变量n与正整数相关联。写下所需的语句,找出在超过n之前,可以添加多少素数,从2开始,以递增的顺序依次增加更高的素数[2,3,5,7,11,13,…]。将此数字与变量k关联 守则: def is_prime(): i = 2 k = 0 Again = True while Again = True: if total > n: Again = False for x
def is_prime():
i = 2
k = 0
Again = True
while Again = True:
if total > n:
Again = False
for x in range(2,n):
if x % i == 0:
total = total
k = k
i += 1
else:
total += x
k += 1
return k
对于涉及质数跟踪和连续加法的问题,您的代码不正确。也没有别的。明显的问题是它不能运行,所以它不可能是正确的。一个语法错误是:
while Again = True:
应该是:
while Again == True:
另一个原因是,在使用total的值之前,它从未初始化:
total += x
一旦我们解决了这些问题,您的代码仍然无法正常工作。但是让我们后退一点。问题是
假设函数的可用性为_素数
但是你没有这样做——你用名称is_prime编写了你的解决方案。我们应该期望有一个名为is_primen的函数,它测试n是否为prime,返回True或False。您要么得到了这个,要么需要找到一个,编写一个,要么简单地假设它存在,但从来没有实际测试过您的代码。但是一旦你有了这个功能,并且它工作了,你就不应该改变它
下面是我的例子,是_素数函数:
def is_prime(n):
""" Assume the availability of a function is_prime. """
if n < 2:
return False
if n % 2 == 0:
return n == 2
for m in range(3, int(n ** 0.5) + 1, 2):
if n % m == 0:
return False
return True
检查你的头脑,确保结果是合理的。作业?也许你的同学可以帮忙……你应该解释一下你的代码试图做什么,因为它不清楚。1.您应该假设is_prime可以使用,而不是自己实现它。2.当循环控制相当古怪的时候,你会感到惊讶。应该是我们不在这里做作业的时候。
for n in range(2, 100):
# Assume a variable n has been associated with a positive integer
print(n, primes_in_sum(n))