定义一个函数,它接受两个整数(开始,结束),并将范围内的数字分类为质数和非质数,并打印质数
def is_prime(n):
if n < 1:
return False
for i in range(2, n+1):
if n % i == 0:
return False
return True
def print_primes(start, end):
for i in range(start, end):
if is_prime(i):
print(i)
a=int(input("Start value: ")
b=int(input("End value: ")
print_primes(a,b)
4条答案
按热度按时间iezvtpos1#
q5iwbnjs2#
(1)从用户
a
和b
获取输入时,您尚未关闭round参数(2)
is_prime()
. for循环运行到n-1
,而不是运行到n
(3)将答案存储在res中,以提高可读性。
正如您所看到的,起始值是包含的,而结束值是排除的,以使两个包含的值都在
print_primes
函数中迭代到end+1
vs3odd8k3#
它应该是:
它应该一直运行到小于n,否则
n
将始终被i
整除,并返回False
vs3odd8k4#
这考虑到了范围内的浮点数问题。试试吧。:)