python学习小组
直播中

lee_st

12年用户 45163经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP RF/无线
私信 关注

Python判断质数(素数)的方法

这是我在学习过程中找到的例程,大家可以参考,不过建议大家,先自己动手,实在是搞不定了,再参考一下别人的例程1.运用python的数学函数
import math

def isPrime(n):
  if n <= 1:
  return False
  for i in range(2, int(math.sqrt(n)) + 1):
  if n % i == 0:
    return False
  return True

2.单行程序扫描素数
from math import sqrt
N = 100
[ p for p in  range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

运用python的itertools模块
from itertools import count
def isPrime(n):
  if n <= 1:
    return False
  for i in count(2):
    if i * i > n:
      return True
    if n % i == 0:
      return False

3.不使用模块的两种方法  
方法1:
def isPrime(n):
  if n <= 1:
    return False
  i = 2
  while i*i <= n:
    if n % i == 0:
      return False
    i += 1
  return True

方法2:
def isPrime(n):
  if n <= 1:
    return False
  if n == 2:
    return True
  if n % 2 == 0:
    return False
  i = 3
  while i * i <= n:
    if n % i == 0:
      return False
    i += 2
  return True

更多回帖

发帖
×
20
完善资料,
赚取积分