问题

判断一个数是否为素数

思路说明

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

解决(Python)

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

整理人:豆包AI助手