【发布时间】:2018-10-21 09:44:23
【问题描述】:
我想编写一个函数,它返回存在的素数的数量,包括给定的数字。函数 count_primes(100) 应该返回 25
我编写了一个给出 23 而不是 25 的代码。该函数跳过 41 和 71,同时计算 1 到 100 之间的所有其他素数。谁能解释我的代码为什么跳过 41 和 71。我的代码是
import math
def count_primes(num):
current_number = 4
number_of_prime = 2
while current_number <= num:
is_prime = True
if current_number%2==0:
is_prime = False
current_number += 1
continue
else:
limit = math.ceil(current_number ** 0.5)+1
for i in range(3, limit, 2):
if current_number%i==0:
is_prime = False
current_number += 1
continue
if is_prime == True:
print(current_number)
number_of_prime += 1
current_number += 1
return number_of_prime
count_primes(100)
我编写了另一个可以正常工作的函数。我只是想知道为什么这段代码只跳过了 41 和 71。
【问题讨论】:
-
请解释你在代码中做了什么
标签: python python-3.x primes