国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用Python判斷質數(素數)的簡單方法講解

2019-11-25 16:48:41
字體:
來源:轉載
供稿:網友

質數又稱素數。指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。素數在數論中有著很重要的地位。比1大但不是素數的數稱為合數。1和0既非素數也非合數。質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一。基于質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等。算術基本定理證明每個大于1的正整數都可以寫成素數的乘積,并且這種乘積的形式是唯一的。這個定理的重要一點是,將1排斥在素數集合以外。如果1被認為是素數,那么這些嚴格的闡述就不得不加上一些限制條件。 前幾天偶爾的有朋友問python怎么判斷素數的方法,走網上查了查,總結了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): m.survivalescaperooms.com  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 

   
eg:求出20001到40001之間的質數(素數)
既然只能被1或者自己整出,那說明只有2次余數為0的時候,代碼如下:

#!/usr/bin/pythonL1=[]for x in xrange(20001,40001): n = 0 for y in xrange(1,x+1): if x % y == 0:  n = n + 1 if n == 2 : print x L1.append(x)print L1

結果如下:

2001120021200232002920047200512006320071200892010120107201132011720123201292014320147201492016120173….

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 琼结县| 伊宁县| 松溪县| 区。| 庆阳市| 调兵山市| 闽侯县| 西贡区| 黑山县| 芦山县| 海林市| 隆德县| 西华县| 洱源县| 黔江区| 庆安县| 赣榆县| 尉氏县| 天水市| 古蔺县| 胶南市| 凤翔县| 怀安县| 淄博市| 叙永县| 海南省| 大丰市| 桐庐县| 溧水县| 湖州市| 辽宁省| 林西县| 温州市| 财经| 盐山县| 封丘县| 昂仁县| 德安县| 石景山区| 谢通门县| 大同县|