我在写一个程序计算给定区间内质数的个数
我想到了这个:
def check_primes(numb):
if numb == 2 :
return True
n = 2
while n < numb:
if numb % n != 0:
return True
else:
return False
def count_primes(num) :
count = 0
for m in range(2,num) :
if check_primes(m) == True :
count += 1
return count
但是当我尝试count_primes(100)时,我得到50而不是25,不知什么原因,有人能给我解释一下这里面出了什么问题吗?
1条答案
按热度按时间6ojccjat1#
在你的
while
中,你没有增加n
,你的方法只运行n=2
,仅此而已。因此,只需将
n += 1
添加到while
即可:还要注意的是,不需要检查所有的数字到
numb
。你可以检查它直到numb/2
,这就足够了。