2022年 11月 6日

如何用python求100以内的素数?

质数(primenumber)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2、3、5、7、11、13、17、19。

方法一,用for循环来实现

num=[];

i=2

for i in range(2,100):

   j=2

   for j in range(2,i):

      if(i%j==0):

         break

   else:

      num.append(i)

print(num)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

方法二,用函数来实现

import math

def func_get_prime(n):

  return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1))

print func_get_prime(100)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出结果为:

[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]
  • 1