使用Python判斷質數(素數)的簡單方法講解
阿新 • • 發佈:2019-01-11
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。素數在數論中有著很重要的地位。比1大但不是素數的數稱為合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術基本定理證明每個大於1的正整數都可以寫成素數的乘積,並且這種乘積的形式是唯一的。這個定理的重要一點是,將1排斥在素數集合以外。如果1被認為是素數,那麼這些嚴格的闡述就不得不加上一些限制條件。
前幾天偶爾的有朋友問python怎麼判斷素數的方法,在網上查了查,總結了python指令碼判斷一個數是否為素數的幾種方法:
- #運用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
- #單行程式掃描素數
- 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
- #不使用模組的兩種方法
- def isPrime(n):
- if n <= 1:
- return False
- i = 2
- while i*i <= n:
- if n % i == 0:
- return False
- i += 1
- return True
- 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
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。素數在數論中有著很重要的地位。比1大但不是素數的數稱為合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基於質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術基本定理證明每個大於1的正整數都可以寫成素數的乘積,並且這種乘積的形式是唯一的。這個定理的重要一點是,將1排斥在素數集合以外。如果1被認為是素數,那麼這些嚴格的闡述就不得不加上一些限制條件。
前幾天偶爾的有朋友問python怎麼判斷素數的方法,在網上查了查,總結了python指令碼判斷一個數是否為素數的幾種方法:
- #運用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
- #單行程式掃描素數
- 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
- #不使用模組的兩種方法
- def isPrime(n):
- if n <= 1:
- return False
- i = 2
- while i*i <= n:
- if n % i == 0:
- return False
- i += 1
- return True
- 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