您好,登錄后才能下訂單哦!
本期的Python學(xué)習(xí)教程是針對(duì)新入門Python編程的新手來寫的:關(guān)于怎么求素?cái)?shù)!
素?cái)?shù)就是質(zhì)數(shù),通俗點(diǎn)說就是只能被1和其本身整數(shù)的數(shù)就是素?cái)?shù)(1除外)
舉個(gè)例子:
2,3,4,5,6當(dāng)中,根據(jù)上面的定義,2只能被1整數(shù)(因?yàn)槿魏螖?shù)和1整除都都等于它本身)
2/1=2
2/2=1
所以 2 是素?cái)?shù)
3/1 =3
3/2 =1.5
3/3 = 1
所以 3 也是素?cái)?shù)
我們?cè)倏?4
4/2 = 2
因?yàn)?4 不僅能被 1 和 其本身整除,還可以被2整除,所以4不是素?cái)?shù),所以后面都可以不用計(jì)算了
后面的就以此類推
這里給大家提供兩種思路,僅供參考
第一種編程思路:我們給定一個(gè)數(shù)字 x ,然后我們利用 2 ~ (x -1) 之間的每一個(gè)數(shù)字與 x 進(jìn)行整除,如果出現(xiàn)可以被整除的情況,則這個(gè)數(shù)字就不是素?cái)?shù),然后循環(huán)就可以跳出去
# 求 a~b之間的素?cái)?shù) def su(a,b): for i in range(a,b): n = False #默認(rèn)不是素?cái)?shù),如果是素?cái)?shù),跳出循環(huán) for j in range(2,i): if i%j == 0: n = True break if n == False: print(i,end=" ") su(100,200) # ans 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 # 179 181 191 193 197 199
第二種編程思路,提高編程效率,如果我們要求的素?cái)?shù)的區(qū)間比較大,比如 1w ~ 2w,然后光雙層循環(huán)就會(huì)浪費(fèi)很多的時(shí)間,所以,我們可以把判斷條件改一下,我們不用把 2 ~ (x-1)之間的每一個(gè)數(shù)字進(jìn)行整除,只需要對(duì)其 x^(0.5) 進(jìn)行循環(huán)同樣可以得到結(jié)果
# 求 a~b之間的素?cái)?shù) def su(a,b): for i in range(a,b): n = False #默認(rèn)不是素?cái)?shù),如果是素?cái)?shù),跳出循環(huán) for j in range(2,int(i**0.5)): if i%j == 0: n = True break if n == False: print(i,end=" ") su(100,200)
今天先的 Python學(xué)習(xí)教程 主要針對(duì)的是新入門的伙伴,Python剛起步的小伙伴可以重點(diǎn)看一下了。后面更多的 Python學(xué)習(xí)教程 和 Python學(xué)習(xí)路線 會(huì)繼續(xù)為大家分享?。?!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。