问题描述
我必须在Python中找到一定范围内的质数,并且必须在范围循环中使用for...。在过去的几天里,我一直在为此付出很多努力,而且它确实变得很累人。我有一个方法,但是当我将其放入代码中时,无论我如何努力,它都永远无法正常工作。无论如何,这是我的代码:
def num_of_primes(n):
count = 1
primeNum = 0
for count in range(2,n+1):
if (n % count == 0 and count == n and (n % count != 0 and count != n)):
primeNum += 1
return primeNum
我想我知道为什么这行不通,但是我不知道如何解决它以便正确运行。哦,而且,我只需要使用一个功能(抱歉,忘记添加该功能)即可。
解决方法
首先,在发布这样的问题之前,您应该认真研究。但是,我认为您是python的新手。因此,我正在实现一种计算效率极低的简单解决方案。您可以执行以下操作-
def is_prime(n):
for i in range(2,int(n/2) + 1):
if n%i == 0:
return False
return True
def num_of_primes(n):
count = 1
primeNum = 0
for count in range(2,n+1):
if is_prime(count):
primeNum += 1
return primeNum