国产探花免费观看_亚洲丰满少妇自慰呻吟_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): www.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….
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康定县| 和林格尔县| 汉寿县| 黄大仙区| 阳东县| 景宁| 宜兰市| 治多县| 炎陵县| 潞城市| 石首市| 正阳县| 炉霍县| 务川| 台中县| 文昌市| 郑州市| 徐州市| 阿巴嘎旗| 元江| 马鞍山市| 南平市| 绥中县| 揭西县| 朝阳市| 炉霍县| 安宁市| 阿克苏市| 故城县| 于都县| 宁陵县| 镇平县| 福鼎市| 禹城市| 全椒县| 抚顺市| 大理市| 禄劝| 舟山市| 芜湖县| 林周县|