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

首頁 > 編程 > Python > 正文

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

2020-01-04 17:29:28
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使用Python判斷質數(素數)的簡單方法講解,經常被用來做科學計算的Python處理這種小問題當然手到擒來^_-需要的朋友可以參考下
 

質數又稱素數。指在一個大于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….
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双峰县| 晋州市| 弥勒县| 晋中市| 山东| 镇沅| 江安县| 乌鲁木齐市| 房山区| 肃北| 墨竹工卡县| 浪卡子县| 黎平县| 茌平县| 乌兰浩特市| 贵州省| 伽师县| 平和县| 积石山| 清水河县| 宁陕县| 霍邱县| 油尖旺区| 乐安县| 通山县| 宁蒗| 灵宝市| 拉孜县| 木里| 江门市| 湄潭县| 同心县| 马关县| 资源县| 漳平市| 永顺县| 无棣县| 金门县| 翁牛特旗| 白朗县| 鹤峰县|