質(zhì)數(shù)(prime number)又稱素?cái)?shù)。指在一個(gè)大于1的自然數(shù)中,除了1和此整數(shù)自身外院刁,不能被其他自然數(shù)整除的數(shù)。素?cái)?shù)在數(shù)論中有著很重要的地位粪狼。比1大但不是素?cái)?shù)的數(shù)稱為合數(shù)退腥。1和0既非素?cái)?shù)也非合數(shù)。素?cái)?shù)是與合數(shù)相對(duì)立的兩個(gè)概念再榄,二者構(gòu)成了數(shù)論當(dāng)中最基礎(chǔ)的定義之一狡刘。基于質(zhì)數(shù)定義的基礎(chǔ)之上而建立的問題有很多世界級(jí)的難題困鸥,如哥德巴赫猜想等嗅蔬。算術(shù)基本定理證明每個(gè)大于1的正整數(shù)都可以寫成素?cái)?shù)的乘積,并且這種乘積的形式是唯一的。這個(gè)定理的重要一點(diǎn)是购城,將1排斥在素?cái)?shù)集合以外吕座。如果1被認(rèn)為是素?cái)?shù)虐译,那么這些嚴(yán)格的闡述就不得不加上一些限制條件瘪板。
一個(gè)大于1的整數(shù),不是素?cái)?shù)就是合數(shù)漆诽;
任何一個(gè)合數(shù)都可以分解為幾個(gè)素?cái)?shù)的乘積侮攀;
除了2,3厢拭,5以外兰英,素?cái)?shù)均以1,3供鸠,7畦贸,9為結(jié)尾;
素?cái)?shù)有無窮多個(gè)楞捂;
兩個(gè)素?cái)?shù)之間差值為1的僅有2和3薄坏,差值為3的僅有2和5;
兩個(gè)素?cái)?shù)間差值為2的成為孿生素?cái)?shù)寨闹,如2和3胶坠,3和5;
孿生素?cái)?shù)推測(cè)有無窮多對(duì)……
網(wǎng)上查了查繁堡,總結(jié)了python腳本判斷一個(gè)數(shù)是否為素?cái)?shù)的幾種方法:
#運(yùn)用python的數(shù)學(xué)函數(shù)??
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?
#單行程序掃描素?cái)?shù)??
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)] ]??
#運(yùn)用python的itertools模塊??
from itertools import count ?
def isPrime(n): ?www.2cto.com
? ? 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?