巢狀迴圈輸出2 100之間的素數

2021-08-26 09:26:54 字數 1186 閱讀 8655

初學python,看到這行**有些費解,找到答案後在此分享一下。

在python中false == 0或空,true ==1或非空。

i%j 取餘數,當餘數是0(能整除)是false,加上not變成true。不能整除相反。

所以這句的意思是如果能整除則進行下面的**

#!/usr/bin/python3

# -*- coding: utf-8 -*-

i = 2

while i < 100: #限制i的範圍

j = 2

while j <= i/j: #限制j的範圍

ifnot(i % j): #如果能整除則進行下面的**

break

#能整除則跳出,直接進行i=i+1,不是素數不列印

j = j + 1

#不能整除則j+1繼續

if(j > (i/j)): #加到j大於根號i還沒有找到可被i整除的數,則應該滿足素數的要求,列印

print(i, " 是素數")

i = i + 1

print ("good bye!")

2  是素數

3 是素數

5 是素數

7 是素數

11 是素數

13 是素數

17 是素數

19 是素數

23 是素數

29 是素數

31 是素數

37 是素數

41 是素數

43 是素數

47 是素數

53 是素數

59 是素數

61 是素數

67 是素數

71 是素數

73 是素數

79 是素數

83 是素數

89 是素數

97 是素數

good bye!

i:2到100的數

j:從2到根號i的數(節約運算量,也可以寫成2到i)

第乙個迴圈限制i的範圍,第二個迴圈限制j的範圍。

首先判斷i不能整除j,則j自增1,繼續判斷直到超過根號i。

其次判斷如果是整除則退出,此時不滿足素數要求,因此不列印,非整除退出則滿足,則列印。

最後i自增

c語言輸出2 100的素數

這個 很巧妙,個人的理解都寫在了注釋裡 include include include 相關的 1 張景龍,黃靜,王愛松等.素數判定演算法的改進 j 河南科技學院學報 自然科學版 2013,6 61 64.doi 10.3969 j.issn.1008 7516.2013.06.015.輸出100以...

輸出100 200之間的素數

如果要輸出乙個素數,首先要判 斷它是不是素數。大家都知道素數是只能被1和它本身除盡的數,1既不是素數也不是合數,2是最小的素數同時也是唯一乙個是偶數的素數,所以要判斷乙個數是不是素數,我想到了三種方法 假設這個數為a 法一 讓a依次和2到a 1相除,如果a不能被2到a 1之間的任何乙個整數整除,則a...

輸出1 100之間的素數

思路 取出1 100,寫乙個布林型別的的方法判斷是不是素數,是素數就輸出。判斷是不是素數的方法是 如果是 1直接返回 false,不是1 時,先得到該數的 2次方根,從 2開始遍歷直到該數的 2次根。如果取到的數能把 2到該數的 2次方根之間的數除盡,就不是素數,除不盡就是。能被2除盡的就不是質數。...