python求100以內(nèi)的素數(shù)之和 用python輸出100-200間的素數(shù)?
用python輸出100-200間的素數(shù)?解題追加;#codingutf-8#函數(shù)作用于推測某一個數(shù)你是不是正整數(shù)deftest(num):list[]#定義列表,主要用于讀取換算inum-1#祛除本
用python輸出100-200間的素數(shù)?
解題追加;
#codingutf-8
#函數(shù)作用于推測某一個數(shù)你是不是正整數(shù)
deftest(num):
list[]#定義列表,主要用于讀取換算
inum-1#祛除本身
whilei1:#去除1
ifnum%i0:#推測是否是有余數(shù)
(i)#將所以有的能完全平方數(shù)它數(shù)參加列表
i-1
iflen(list)0:#如果不是列表為空,那就是來表示除了1個它本身能整除
print(num,end)
#此函數(shù)作用于判斷換算出要確定的所有數(shù)字100~200
deftest2(star_num,and_num):
jstar_num
whilejboth_num:
test(j)
j1
test2(100,200)
print()
現(xiàn)在java的執(zhí)行速度和c 相比誰快?你怎么看?
絕大多數(shù)情況下,全是C比JAVA快。前者再編譯成本地機(jī)器語言,后者是需要虛擬機(jī)立刻代碼編譯。前者沒有垃圾回收,后者有垃圾回收。前者也可以棧上怎么分配資源,后者感情依賴編譯器和虛擬機(jī)(不確定性)。
不過也要不清楚,在某些時候,JAVA速度更快。這是建立起在C還是沒有全精通也可以不想花時間系統(tǒng)優(yōu)化的前提下。JAVA的虛擬機(jī)有時非常智能,它也可以自動啟動對代碼通過優(yōu)化。而C編譯器則優(yōu)化空間相對較少,它的哲學(xué)是把更多的優(yōu)化機(jī)會交給程序員。
JAVA虛擬機(jī)常見的手動系統(tǒng)優(yōu)化有以下這些。自動啟動把某些資源弄到棧上分區(qū)分配,自動出現(xiàn)把某些函數(shù)設(shè)置為內(nèi)聯(lián)。另外更很厲害的,內(nèi)存池。按結(jié)構(gòu)內(nèi)存池時(先行分區(qū)分配一整塊),內(nèi)存分配會有一定會提速,也避兔了內(nèi)存碎片。有緩存技術(shù),把一些很可能你經(jīng)常帶的對象事前怎么分配,以后隔一段時間fun的時候就用太麻煩的。也就是表面上看是fifth了個對象,實際上根本不會再一次發(fā)生分配內(nèi)存的動作,只是再在用全局的一個可以斷斷續(xù)續(xù)賞識的對象指針。另外“寫時修改”策略。即基因復(fù)制一個大對象時,根本不會完全細(xì)胞克隆(并不是截圖一個指針),完全是待到突然發(fā)現(xiàn)新對象變更時才真正的細(xì)胞克隆。
這些優(yōu)化,用C都給都也可以做,而且還是可以自動做,不依賴感編譯器手動系統(tǒng)優(yōu)化(JAVA大多數(shù)依賴性太強(qiáng)自動優(yōu)化系統(tǒng),沒法手動啟動)。C要做的那是該棧上分配的就棧上分配,該內(nèi)聯(lián)的就內(nèi)聯(lián)(內(nèi)聯(lián)不了的然后少調(diào)用函數(shù),或書寫宏)。麻煩你,JAVA隱隱都沒有棧上未分配(除此之外基本是類型)和內(nèi)聯(lián)的概念,是因為是靠虛擬機(jī)自動出現(xiàn)智能實現(xiàn)程序的。十分急切的就是內(nèi)存池了,自己實現(xiàn)程序一個內(nèi)存池。另另外多用緩存,最好不要什么東西都從堆上新分配。
可是再現(xiàn)實情況是,多數(shù)C程序員都沒有這些優(yōu)化能力,或是就算有也沒有那個時間折騰起來,趕工程嘛。還有一個一些很最重要,性能優(yōu)化后的代碼一般說來可讀性都不怎么好,但代碼變緊張!這就可能導(dǎo)致了,在某些時候,帶有的代碼,JAVA速度倒是慢了。
之后,還要強(qiáng)調(diào)什么,上面說的JAVA有時侯比C快,情況并不是太多見。有都是每天都發(fā)生了什么在C初學(xué)者身上。但是如果能是C代碼經(jīng)由高度的優(yōu)化,基本上是一定比高度優(yōu)化的JAVA要快的!
我們可以把C比喻成有極為強(qiáng)大功能(光圈,變焦,曝光時間等)的相機(jī),而JAVA是一定高度非智能的一鍵式傻瓜式相機(jī)。當(dāng)一個肯定不會半自動調(diào)參的攝影師用專業(yè)相機(jī)時,的確當(dāng)然比一鍵式傻瓜相機(jī)手動調(diào)參拍出來的效果好。而一個專業(yè)攝影師,則肯定會拍出來比傻瓜式相機(jī)效果好。