列印6個30以內的素數

2021-10-01 15:43:46 字數 1384 閱讀 3670

目的:找出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 對這個數求平方根,如果這個數能被這...