问题

判断一个数是否为素数

思路说明

这个问题有多种解法,以下的解法来自网络整理。供参考使用。

解决(Python)

  1. #! /usr/bin/env python
  2. #coding:utf-8
  3. """
  4. """
  5. #方法一
  6. import math
  7. def isPrime1(n):
  8. if n <= 1:
  9. return False
  10. for i in range(2, int(math.sqrt(n)) + 1):
  11. if n % i == 0:
  12. return False
  13. return True
  14. #方法二
  15. def isPrime2(n):
  16. if n <= 1:
  17. return False
  18. i = 2
  19. while i*i <= n:
  20. if n % i == 0:
  21. return False
  22. i += 1
  23. return True
  24. #方法三
  25. from itertools import count
  26. def isPrime3(n):
  27. if n <= 1:
  28. return False
  29. for i in count(2):
  30. if i * i > n:
  31. return True
  32. if n % i == 0:
  33. return Fals
  34. #方法四
  35. def isPrime4(n):
  36. if n <= 1:
  37. return False
  38. if n == 2:
  39. return True
  40. if n % 2 == 0:
  41. return False
  42. i = 3
  43. while i * i <= n:
  44. if n % i == 0:
  45. return False
  46. i += 2
  47. return True
  48. if __name__=="__main__":
  49. a=isPrime4(5)
  50. print a