Python實作輸出某區間範圍内全部素數的方法
本文執行個體講述了Python實作輸出某區間範圍内全部素數的方法。分享給大家供大家參考,具體如下:
# -*- coding: utf-8 -*-
# 簡述:區間範圍101-200
# 要求:判斷這個區間内有多少個素數,并逐一輸出。
def prime(m,n):
list1=[]
list2=[]
for i in range(m,n+1):
list1.append(i)
for j in range(2,m/2):
if i%j==0:
list2.append(i)
break
#print list(set(list1).difference(set(list2)))#list1中有而list2中沒有的
list=[i for i in list1 if i not in list2]
list.sort()
print list
print "該區間共有素數%d個"%len(list)
if __name__=="__main__":
print "我們測試結果:"
m=int(raw_input("請輸入區間左端點:"))
n=int(raw_input("請輸入區間右端點:"))
prime(m,n)
運作結果:
我們測試結果:
請輸入區間左端點:101
請輸入區間右端點:200
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
該區間共有素數21個
運作效果截圖:
總結:
1、#注釋掉的一行也是可以出結果的,但是list中的元素沒有排序,用了sort()也是不行,清單補集這部分的知識需要補充
2、判斷非素數我用了比較笨的方法,先算出素數再算補集,是因為直接判斷素數無法運作出結果,汗
更多關于Python相關内容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python資料結構與算法教程》、《Python函數使用技巧總結》、《Python字元串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》
希望本文所述對大家Python程式設計有所幫助。
您可能感興趣的文章:
使用Python判斷質數(素數)的簡單方法講解
python求素數示例分享
Python素數檢測的方法
Python程式設計判斷一個正整數是否為素數的方法
Python實作高效求解素數代碼執行個體
Python實作求最大公約數及判斷素數的方法
Python素數檢測執行個體分析
Python求出0~100以内的所有素數
Python 判斷是否為質數或素數的執行個體
python使用篩選法計算小于給定數字的所有素數
python素數篩選法淺析
時間: 2018-05-01
質數又稱素數.一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數:否則稱為合數. 一.判斷一個數是否為素數: 基于定義 def is_prime(num): if num <= 1: return '%d是一個合數' % num for i in range(2, num): if not num % i: return '%d是一個合數' % num else: return '%d是一個素數' % num 考慮合數的性質 def is_prime(num): if num
本文執行個體講述了Python程式設計判斷一個正整數是否為素數的方法.分享給大家供大家參考,具體如下: import string import math #判斷是否素數的函數 def isPrime(n): if(n<2): return False; elif(n==2): return True; elif(n>2): for d in range(2,int(math.ceil(math.sqrt(n))+1)): if(n%d==0): return False; return True;
原理: 素數,指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數.在加密應用中起重要的位置,比如廣為人知的RSA算法中,就是基于大整數的因式分解難題,尋找兩個超大的素數然後相乘作為密鑰的.一個比較常見的求素數的辦法是埃拉托斯特尼篩法(the Sieve of Eratosthenes) ,說簡單一點就是畫表格,然後删表格,如圖所示: 從2開始依次往後面數,如果目前數字一個素數,那麼就将所有其倍數的數從表中删除或者标記,然後最終得到所有的素數. 有一個優化: 标記2和3的倍數
本文執行個體為大家分享了python計算小于給定數字的所有素數的具體代碼,供大家參考,具體内容如下 代碼思路:首先列出指定範圍内所有候選數字,然後從前往後依次選擇一個數字去除以後面所有數字,能夠被整除的肯定不是素數,把這些數字過濾掉,然後重複這個過程,直到選擇的除數大于最大數字的平方根為止.代碼主要示範内置函數filter()和切片的用法,實際上這個算法的效率并不是很高. def primes2(maxNumber): '''篩選法擷取小于maxNumber的所有素數''' #待判斷整數 lst =
一個大于1的自然數,除了1和它本身外,不能被其他自然數(質數)整除(2, 3, 5, 7等),換句話說就是該數除了1和它本身以外不再有其他的因數. 首先我們來第一個傳統的判斷思路: def handlerNum(num): # 質數大于 1 if num > 1: # 檢視是否有其他因子 for i in range(2, num//2+1): if (num % i) == 0: print(num,"不是質數") break else: print(num, "是質
質數又稱素數.指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數.素數在數論中有着很重要的地位.比1大但不是素數的數稱為合數.1和0既非素數也非合數.質數是與合數相對立的兩個概念,二者構成了數論當中最基礎的定義之一.基于質數定義的基礎之上而建立的問題有很多世界級的難題,如哥德巴赫猜想等.算術基本定理證明每個大于1的正整數都可以寫成素數的乘積,并且這種乘積的形式是唯一的.這個定理的重要一點是,将1排斥在素數集合以外.如果1被認為是素數,那麼這些嚴格的闡述就不得不加上一些限制條
本文執行個體講述了Python素數檢測的方法.分享給大家供大家參考.具體如下: 因子檢測: 檢測因子,時間複雜度O(n^(1/2)) def is_prime(n): if n < 2: return False for i in xrange(2, int(n**0.5+1)): if n%i == 0: return False return True 費馬小定理: 如果n是一個素數,a是小于n的任意正整數,那麼a的n次方與a模n同餘 實作方法: 選擇一個底數(例如2),對于大整數p,如果2^(
複制代碼 代碼如下: # 判斷是否是素數def is_sushu(num): res=True for x in range(2,num-1): if num%x==0: res=False return res return res # 列印出素數清單print ([x for x in range(1000) if is_sushu(x)])
素數是程式設計中經常需要用到的. 作為學習Python的示例,下面是一個高效求解一個範圍内的素數的程式,不需要使用除法或者求模運算. #coding:utf-8 #設定python檔案的編碼為utf-8,這樣就可以寫入中文注釋 def primeRange(n): myArray=[1 for x in range(n+1)] ##清單解析,生成長度為(n+1)的清單,每個數值都為1 myArray[0]=0 myArray[1]=0 startPos=2 while startPos <= n:
本文執行個體講述了Python實作求最大公約數及判斷素數的方法.分享給大家供大家參考.具體實作方法如下: #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出時會跳出下面的else語句 count -= 1 else: prin
本文執行個體講述了Python素數檢測的方法.分享給大家供大家參考.具體如下: 該程式實作了素數檢測器功能,如果結果是true,則是素數,如果結果是false,則不是素數. def fnPrime(n): for i in range(2,n,1): if(n % i == 0): return bool(0) return bool(1) 希望本文所述對大家的Python程式設計有所幫助.
相比C++而言,Python适合做原型.本系列的文章介紹如何在Python中用OpenCV圖形庫,以及與C++調用相應OpenCV函數的不同之處.這篇文章介紹在Python中使用OpenCV檢測并繪制輪廓. 提示: 轉載請詳細注明原作者及出處,謝謝! 本文介紹在OpenCV-Python中檢測并繪制輪廓的方法. 本文不介詳細的理論知識,讀者可從其他資料中擷取相應的背景知識.筆者推薦清華大學出版社的. 輪廓檢測 輪廓檢測也是圖像進行中經常用到的.Ope
本文主要研究的是Python語言實作溫度轉換的相關執行個體,具體如下. 代碼如下: #TempConvert.py val=input("請輸入帶有溫度表示符号的溫度值(例如:32c)") if val[-1] in ["C","c"]: f=1.8*float(val[0:-1])+32 print("轉換後的溫度為:%.2fF"%f) elif val[-1] in ["F","f"]:
本文執行個體分析了Python二分法搜尋算法.分享給大家供大家參考.具體分析如下: 今天看書時,書上提到二分法雖然道理簡單,大家一聽就明白但是真正能一次性寫出别出錯的實作還是比較難的,即使給了你充足的時間,比如1小時.如果你不是特别認真的話,可能還是會出一些這樣那樣的錯誤,是以就嘗試了自己去實作一下,看能否一次通過,結果自然不言而喻,雖然用的時間不長,但是我失敗了,呵呵. 個人覺得失敗的最主要原因是自己沒有認真的先想好這個思路和可能出現的分支情況,而是直接憑主觀臆想就去寫代碼了,完全正中書上所說的行
本文執行個體講述了python檔案寫入的用法.分享給大家供大家參考.具體分析如下: Python中wirte()方法把字元串寫入檔案,writelines()方法可以把清單中存儲的内容寫入檔案. f=file("hello.txt","w+") li=["hello world\n","hello china\n"] f.writelines(li) f.close() 檔案的内容: hello world hello china
本文執行個體講述了python集合用法.分享給大家供大家參考.具體分析如下: # sets are unordered collections of unique hashable elements # Python23 tested vegaseat 09mar2005 # Python v2.4 has sets built in import sets print "List the functions within module 'sets':" for funk in dir(s
本文執行個體講述了python映射清單.分享給大家供大家參考.具體分析如下: 清單映射是個非常有用的方法,通過對清單的每個元素應用一個函數來轉換資料,可以使用一種政策或者方法來周遊計算每個元素. 例如: 複制代碼 代碼如下: params = {"server":"mpilgrim", \ "database":"master", \ "uid":
本文執行個體講述了Python快速排序算法.分享給大家供大家參考,具體如下: 快速排序的時間複雜度是O(NlogN) 算法描述: ① 先從序列中取出一個數作為基準數 ② 分區過程, 将比這個數大的數全部放到它的右邊, 小于或等于它的數全部放到它的左邊 ③ 再對左右區間重複第二步, 直到各區間隻有一個數 假設對 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 進行排序, 首先在這個序列中随便找一個基準數(用來參照), 比如選擇 6 為基準數, 接下來把所有比基準數大的數放在6的右邊, 比6
本文執行個體講述了Python變量作用範圍.分享給大家供大家參考.具體如下: #coding=utf-8 #變量作用範圍 global z #使用全局變量 z=1 #給全局變量指派 x=99 #x全局變量聲明時初始化 def foo(y): #y和z在函數中被指派:局部的 #局部區域 z=x+y #x沒被指派,是以它是全局的 return z def bar(y): global z z=x+y return z print foo(1) #結果=100 print z #結果=1 print ba