输出给定范围内[m,n]的所有素数。素数定义为:在大于1的自然数中,除了1和它本身以外不再有其他因数。
def is_prime(n):
for i in range(2,n):
if n % i == 0:
return False
return True
a=[2,19]
def pri_num():
for i in range(int(a[0]),int(a[1])+1):
if is_prime(i):
print(i)
def is_prime(n):
for i in range(2, n+1):
if n % i == 0 and n != i:
break
return True
def pri_num(inputstr):
a = inputstr.split(',')
for i in range(int(a[0]), int(a[1]) + 1):
if is_prime(i):
print(i)
if __name__ == '__main__':
pri_num(input("输入范围,英文逗号分隔: "))
简洁的代码如下:
>>> m,n = 10,100 #范围
>>> isPrime = lambda n:False if n<2 else not any(map(lambda i:not n%i,range(2,n)))
>>> print(*filter(isPrime, range(m,n+1)))
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
>>> m,n = 1,100
>>> print(*filter(isPrime, range(m,n+1)))
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97