目的:找出6個30以內的素數
#列印30以內的6個素數(素數:只能被1和它本身整除的整數)
#思路:2以外的偶數都不是素數,只判斷奇數
print(2)
#n是我們要判斷是否為素數的變數
n = 3
#count變數用於計算當前有多少素數
count = 1
#is_prime布林變數,假設所有的數都是素數。判斷是否為素數,若不是則改為false
is_prime = true
while n <= 30:
if n % 2 == 0:
n += 1
continue #continue後直接回到while迴圈
#下面是n為奇數,for迴圈的意義是n不能被其他整數整除,i是2到n-1的所有整數
for i in range(2,n):
if n % i == 0:
is_prime = false
break #break執行時,直接跳出for迴圈
#i遍歷完所有的值之後,is_prime的值依舊不變時,則為true,說明當前n為素數
if is_prime == true:
print(n)
try:
count += 1
if count == 6:
break
except:
print("catch the error")
else:
is_prime = true
#繼續執行下一次迴圈,直到count==6或者n>30
n += 1
優化方法:
#優化方法
原理:n不是素數時,可以表現為p*q = n。當然,如果p>sqrt(n)時,n不會是素數。
import math
print(2)
n=3count = 1
is_prime = true
while n<=30:
sqrt_of_n = int(math.sqrt(n))
for i in range(2,sqrt_of_n + 1):
if n% i == 0:
is_prime = false
break
if is_prime == true:
print(n)
try:
count += 1
if count == 6:
break
except:
print("catch the error")
else:
is_prime = true
n += 2
結果:23
571113
求1000以內的素數 ghpython 素數
今天咱們繼續來看老潘微博裡的乙個python小案例,求1 200以內的所有素數,所謂素數,就是咱高中裡說的質數,只能被數字1和其自身整除 且大於1的自然數。那麼就只需要遍歷1 200以內的每乙個數,然後判斷其是否有被整除的數,需要注意的是,如果乙個數被其他兩個數整除,那必然是一大一小,所有只需遍歷到...
1000以內的回文素數
問題描述 回文數是指乙個數無論從左到右還是從右到左讀都是一樣的數字 比如33,121,323,45654 等具有對稱特徵的數字 根據以上描述求1000以內的回文素數 完整 include include bool judge unsigned n return 1 void judgehuiwen ...
求n以內的素數
求n以內素數。素數又稱質數,它是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。有兩種方法 篩選法和開根號法 篩選法 從小到大篩去乙個已知素數的所有倍數。依次刪除可被2整除,3整除。的數字,剩下的則為素數 開根號法 如果乙個數 2 對這個數求平方根,如果這個數能被這...